我有一个包含3列的Gridview,最初在表单加载期间,只有两列可见,一列将有数据,另一列有复选框。
我希望当我检查特定单元格中的复选框时,对应于该复选框,第三列单元格将可见,我不想完成第3列以便在选中复选框时可见,Gridview是硬编码的,只有行是dymanic(column1,column2设置为visible,第3列设置为不可见)
在下面的图像中,当我检查复选框完成时,看到的列是可见的,这是我不想要的
任何人都可以帮助我吗?
我尝试了下面的代码,但它使第3列不可见,特定的单元格
public form1()
{
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
}
void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.Columns[e.ColumnIndex + 1].Visible = true;
}
答案 0 :(得分:0)
那么你可以为此尝试RowCommand事件但是因为我看到你已经为复选框创建了事件,尝试找到特定行的行索引然后使用单元格编号(单元格[2])来查找控件并分配其属性as visible = false,
答案 1 :(得分:0)
这是我刚试过的演示。它似乎工作正常。整个想法是您无法隐藏DataGridView中的特定单元格。但是你可以隐藏它,因为普通的GUI引擎会在它想要隐藏任何控件/元素时使用(我想是这样)。您只需对其进行自定义,即可使用BackgroundColor
的{{1}}绘制单元格。当然,为了使它工作,它并不容易。以下是您的代码:
DataGridView
这就是全部:)
答案 2 :(得分:0)
是的,实际上我们无法隐身,但我想以简单的方式对它进行一次探索。使用
datagridview.rows(e.rowindex).cells[your column name]=true ;
使用它,它不允许用户在文本框中输入数据。如果它是假的,那么我们可以修改它/输入任何文本。
datagridview.rows(e.rowindex).cells[your column name].backcolour=color.gray/white/black;
使用此功能,我们可以将颜色填充到复选框为true / false时要绘制的特定文本框;