我正在使用Visual Studio 2012.我想禁用DataGridView
上的编辑,它似乎在我使用此代码时有效:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.ReadOnly = true;
}
但是当我返回菜单表单然后返回DataGridView
所在的表单时,现在可以编辑它。我只定义
dataGridView1.ReadOnly = true;
到这个表格。我不知道这个问题是什么。有人可以帮忙吗?感谢。
这是我进入菜单按钮的代码
Menu menu = new Menu();
this.Hide();
menu.ShowDialog();
我的按钮返回DataGrid:
FrmList frmlist = new FrmList();
frmlist.Show();
this.Hide();
答案 0 :(得分:12)
为什么不尝试在DataGridView的“属性”窗口中将localStorage :
MessageCount : "[{"id":"user_abc-com","MsgCount":8},{"id":"user2_abc-com","MsgCount":16}]"
属性设置为 True ?
修改强>
双击表单并在设计窗口中,选择DataGridView并打开“属性”选项卡。向下滚动属性,您将看到ReadOnly
选项。将其值更改为 True 。
您在ReadOnly
事件中设置了ReadOnly
属性,该属性仅在用户点击网格单元格时执行。因此,当您创建这样的表单的新对象时,
CellContentClick
它只会在设计器中设置FrmList frmlist = new FrmList();
的情况下创建表单的新实例。由于默认情况下Properties
属性设置为false,并且您编写的将其设置为true的代码未执行,因此DataGridView将是可编辑的。
答案 1 :(得分:0)
答案 2 :(得分:0)
检查表单是否在导航时重新初始化。您可以在构造函数中设置断点。这取决于您的导航服务,或者它是如何实现的。在这种情况下,您可以将ReadOnly
标志设置为初始化时的最后一个值,或将其实现为单例。
答案 3 :(得分:0)
使整个DataGridView只读。 有关更多信息,请访问MSDN
private void Button8_Click(object sender, System.EventArgs e)
{
foreach (DataGridViewBand band in dataGridView.Columns)
{
band.ReadOnly = true;
}
}