В DataGridView установите для свойства ReadOnly столбца значение false при добавлении новой строки при обновлении ее true (c # .net). - PullRequest
2 голосов
/ 19 октября 2011

Я установил для свойства чтения только 2 столбцов с данными значение true.

    List.Columns[0].ReadOnly = true;
    List.Columns[1].ReadOnly = true;

Но я хочу, чтобы они читались только при попытке обновления пользователем. Пользователь может добавлять новые строки в dataGridView, поэтому я хочу установить свойство readonly в false при попытке добавить новую строку. я попытался сделать это на событии CellDoubleClick таблицы данных, но он ничего не сделает, так как слишком поздно для вызова функции Миниатюра.

if(e.RowIndex == GridView.Rows.Count-1)
                GridView.Rows[e.RowIndex].Cells[1].ReadOnly = GridView.Rows[e.RowIndex].Cells[0].ReadOnly = false;
            else
                GridView.Rows[e.RowIndex].Cells[1].ReadOnly = GridView.Rows[e.RowIndex].Cells[0].ReadOnly = true;

Любые идеи

Ответы [ 2 ]

5 голосов
/ 19 октября 2011

Вы должны использовать редактирование cellbegin, чтобы сделать свойство ячейки доступным только для true..

   private  void dataGridView1_CellBeginEdit(object sender,DataGridViewCellCancelEventArgs e)
   {
       if (dataGridView1.Columns[e.ColumnIndex].Name == "ColName0")
       {
           // you can check whether the read only property of that cell is false or not

       }
   }

Надеюсь, это поможет вам ...

2 голосов
/ 20 октября 2011

Звучит так, как будто вы хотите сделать все строки в сетке доступными только для чтения, если они не являются новой строкой, то есть созданные строки нельзя редактировать. Если это правильно, то вы можете установить строку только для чтения во время события DataBindingComplete следующим образом:

dataGridView1.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(dataGridView1_DataBindingComplete);

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewRow item in dataGridView1.Rows)
    {
        if (!item.IsNewRow)
            item.ReadOnly = true; 
    }
}

Важной частью является проверка, является ли строка новой строкой.

...