我有一个Datagridview,它有一些文本框列。在这个Datagridview中,我在第三列之后添加了DataGridViewButtoncolumn
,我将其设置为visible = false,如下面的代码所示。
DataGridViewButtonColumn btnEllipse = new DataGridViewButtonColumn();
btnEllipse.Text = "...";
btnEllipse.FillWeight = 6;
btnEllipse.MinimumWidth = 20;
btnEllipse.Width = 20;
btnEllipse.DividerWidth = 0;
//btnCompanyProperty.HeaderText = "To Company/Property";
btnEllipse.UseColumnTextForButtonValue = true;
dgvForecast.Columns.Insert(4, btnEllipse);
dgvForecast.Columns[4].Visible = false;
dgvForecast.Columns[dgvForecast.Columns["BaseValue"].Index + 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dgvForecast.Columns[dgvForecast.Columns["BaseValue"].Index + 1].Width = 20;
dgvForecast.Columns["BaseValue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dgvForecast.Columns["BaseValue"].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
现在我的问题是,当我点击索引3单元格时,我只需显示此按钮单元格。现在 当我单击索引3单元格时,这显示完整的按钮列,如下图所示。我只想显示所选行按钮单元格而不是完整按钮列。
我希望当我单击第一行值单元格时,第一行按钮单元格应该是可见的,当我单击第二行时,单元格第一行按钮应该是不可见的,当前行按钮应该是可见的。
答案 0 :(得分:0)
您无法隐藏DataGridView
中的特定单元格。 DataGridView
中没有对此的直接支持。
执行此操作的一种方法是使用自定义属性创建自定义DataGridViewButtonColumn
以控制可见性,并在设置此属性时覆盖paint方法以使用背景颜色绘制矩形。它类似于msdn论坛问题removehide-button-on-datagridview中提供的那些。
使用上面的自定义列,您可以在CellEnter/RowEnter
事件中显示该单元格,并将其隐藏在CellLeave/RowLeave
事件中。