如何仅为特定列启用编辑模式?
假设我有这些专栏:
Product Code || Quantity || Description || Price
我想仅为Quantity
列和Price
列启用编辑模式。其余部分无法编辑。
我已在下面的代码中执行了此操作,但似乎无效:
dataGridView1.EditMode = DataGridViewEditMode.EditOnKeystroke;
dataGridView1.Columns["Quantity"].ReadOnly = false;
dataGridView1.Columns["Price"].ReadOnly = false;
我所能做的就是禁用ReadOnly
到false
,但启用了我不想启用它们的所有列。
注意:当程序第一次运行时,我已将ReadOnly
设置为true
答案 0 :(得分:3)
开箱即用的解决方案正在使用数据模型上的属性:
public class MyDataModel
{
// Do not show in data grid view
[System.ComponentModel.Browsable(false)]
public virtual int ID { get; protected set; }
// Set to read-only in data grid view
[System.ComponentModel.ReadOnly(true)]
public virtual string Person { get; set; }
}
答案 1 :(得分:1)
您应该将ReadOnly = true设置为所有不可编辑的列。 默认情况下,列设置为ReadOnly = false
答案 2 :(得分:1)
这会对你有所帮助
答案 3 :(得分:0)
foreach (DataGridViewColumn dc in dgvTestParameter.Columns)
{
if (dc.Index.Equals(0) || dc.Index.Equals(4))
{
dc.ReadOnly = false;
}
else
{
dc.ReadOnly = true;
}
}
答案 4 :(得分:0)
int EditableCol_index = datagridview["colname"].index;
// if this is true , you wont be able to edit even you set the column readonly=false;
datagridview1.readonly = false;
foreach (datagridviewcolumns c in datagridview1 )
{
c.readonly = true;
if( c.index == EditableCol_index )
{
c.readonly = false; // editable
}
}
答案 5 :(得分:0)