0

我有一个包含一些文本框列的 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 单元格时,它显示完整的按钮列,如下图所示。我只想显示选定的行按钮单元格不完整的按钮列。

在此处输入图像描述

我希望当我单击第一行值单元格时,只有第一行按钮单元格应该是可见的,当我单击第二行值单元格时,第一行按钮应该是不可见的并且当前行按钮应该是可见的。

4

1 回答 1

0

您不能在DataGridView. 中没有对此的直接支持DataGridView

这样做的一种方法是创建自定义DataGridViewButtonColumn以使用自定义属性控制可见性,并在设置此属性时覆盖绘制方法以绘制具有背景颜色的矩形。它与 msdn 论坛问题removehide-button-on-datagridview中提供的类似。

使用上面的自定义列,您可以使单元格在事件中可见并在CellEnter/RowEnter事件中隐藏它CellLeave/RowLeave

于 2014-03-24T11:20:30.300 回答