在DataGridView中有条件地显示按钮
本文关键字:显示 按钮 有条件 DataGridView | 更新日期: 2023-09-27 18:10:39
如何在DataGridView的单元格中显示按钮,例如,列A有值?
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var dgv = (DataGridView)sender;
if (dgv.Columns[e.ColumnIndex].Name == "btn")
{
var hide= dgv.Rows[e.RowIndex].Cells[dgv.Columns["A"].Index].Value is DBNull;
var cell = dgv.Rows[e.RowIndex].Cells[dgv.Columns["B"].Index];
if (hide)
{
//cell.Value = null;
//cell = new DataGridViewTextBoxCell();
cell.Visible = false; // This dosn't work
}
}
}
可能最好的方法是绑定到网格视图上的Item_DataBound(我相信这就是它的名称)。然后检查列,看看它是否包含您需要的值。然后你可以像这样在单元格中隐藏特定的控件(在你的帖子中使用大部分代码):
cell.Controls[0].Visible = false;
为其创建自定义DataGridView
和CustomDataGridViewColumn
,并分配属性以设置visible
和invisible
特定的单元格按钮。下面是演示如何为datagridview创建自定义列的示例。http://www.codemag.com/Article/0707061否则,就不可能使任何单元格按钮直接可见或不可见。
您需要将包含cell的按钮转换为DataGridViewButtonCell。如果Cell
为Button Cell
,则可以将其强制转换为该类。
:
var cell = dgv.Rows[e.RowIndex].Cells[dgv.Columns["B"].Index] as DataGridViewButtonCell;
cell.Visible = false;