【问题标题】:c# readonly DataGridView with one enabled cell时间:2018-01-10 标签:c#readonlyDataGridView,带有一个启用的单元格
【发布时间】:2012-03-05 08:11:39
【问题描述】:

我有只读数据网格视图,在某些特定情况下,我需要在双击行后启用一个单元格(使 readonly=false 并关注当前行中的这个特定单元格(就像输入它 - 光标应该开始闪烁)。

我有:

 private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
       dataGridView1.Cells[3].ReadOnly = false;
}

但它不起作用。为什么?

【问题讨论】:

    标签: c# winforms datagridview controls


    【解决方案1】:

    dataGridView1 ReadOnly 属性应设置为 false。 每一行的 ReadOnly 属性都应该设置为 true。 然后您可以在需要时将单元格 ReadOnly 设置为 true。

    //setting each row
    
        foreach (DataGridViewRow row in dataGridView1.Rows)
                    {
                        row.ReadOnly = true;
                    }
    
    //setting on cell
    
        DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[3];
        dataGridView1.CurrentCell = cell;
        dataGridView1.CurrentCell.ReadOnly = false;                
        dataGridView1.BeginEdit(true); 
    

    【讨论】:

    • 要选择性地更改几个单元格的ReadOnly 属性,似乎DataGridView.ReadOnly 应该与DataGridViewCell.ReadOnly 相同,而DataGridViewColumn 或DataGridViewRow 必须相反。通过设置 DataGridView.ReadOnly=false, All DatagridColumns.ReadOnly = true 和 DataGridViewCell.ReadOnly=false,我得到了可编辑的单元格
    【解决方案2】:

    尝试设置Datagridview的currentcell并调用BeginEdit

     private void dataGridView1_DoubleClick(object sender, EventArgs e)
     {
        dataGridView1.Cells[3].ReadOnly = false;
        this.dataGridView1.CurrentCell = dataGridView1.Cells[3];
        dataGridView1.BeginEdit(true);
    }
    

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.beginedit.aspx

    【讨论】:

    • 但 readonly 属性在 "=false;" 之后似乎没有改变它保持真实。我不知道为什么。
    • DataGridViewEditMode 属性的设置是什么?如果将其设置为EditProgrammatically,则可能会导致问题。
    • 它没有设置。我尝试了不同的配置,但它没有改变任何东西。尝试将我的单元格设置为只读 false 没有结果。
    • 也许尝试不同的方法。将 Datagridview 保留为可编辑并处理 beginedit 事件以取消对不可写单元格的编辑。这样一来,所有单元格都应该从一开始就将 Readonly 设置为 false,但它们实际上是不可编辑的。
    • 我已将 dataGridView1 的 Readonly 属性更改为 true,但将每行更改为 true。现在它完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2012-12-24
    • 2012-09-18
    相关资源
    最近更新 更多