如果,例如,列A具有值?
,如何在DataGridView的单元格中显示按钮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
}
}
}
答案 0 :(得分:1)
执行此操作的最佳方法可能是在网格视图上绑定到Item_DataBound(我相信它就是所谓的)。然后检查列以查看它是否包含您需要的值。然后你可以像这样隐藏单元格中的特定控件(使用帖子中的大部分代码):
cell.Controls[0].Visible = false;
答案 1 :(得分:0)
为其创建自定义DataGridView
和CustomDataGridViewColumn
,并指定属性以设置visible
和invisible
特定单元格按钮。这是一个演示如何为datagridview创建自定义列的示例。
http://www.codemag.com/Article/0707061
否则,不可能直接使任何单元格按钮可见或不可见。
答案 2 :(得分:-1)
您需要将包含单元格的按钮投射到DataGridViewButtonCell。如果Cell
为Button Cell
,则var cell = dgv.Rows[e.RowIndex].Cells[dgv.Columns["B"].Index] as DataGridViewButtonCell;
cell.Visible = false;
可以转换为此类。
使用此:
{{1}}