Как установить управление во вторую ячейку только что созданной строки datagridview [duplicate]

Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.

Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).

Пример

  var name = p?.Spouse?.FirstName;

эквивалентен:

    if (p != null)
    {
        if (p.Spouse != null)
        {
            name = p.Spouse.FirstName;
        }
    }

В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.

В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.

Для получения дополнительной информации: Операторы с нулевым условием

36
задан SMUsamaShah 7 February 2011 в 08:22
поделиться

10 ответов

Установите текущую ячейку следующим образом:

DataGridView1.CurrentCell = DataGridView1.Rows[rowindex].Cells[columnindex]

или

DataGridView1.CurrentCell = DataGridView1.Item("ColumnName", 5)

, и вы можете напрямую сфокусироваться с помощью Редактирования:

dataGridView1.BeginEdit(true)
71
ответ дан Jeremy Thompson 25 August 2018 в 21:21
поделиться

в событии form_load (отправитель объекта, EventArgs e) попробуйте это

dataGridView1.CurrentCell = dataGridView1.Rows [dataGridView1.Rows.Count1] .Cells [0];

this код делает фокус на последней строке и первой ячейке

0
ответ дан Ahmed Soliman Flasha 25 August 2018 в 21:21
поделиться
 private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        int row = e.RowIndex;
        int col = e.ColumnIndex;
        if (row < 0 || col != 3)
            return;
        if (e.FormattedValue.ToString().Equals(String.Empty))
        {
        }

        else
        {
            double quantity = 0;
            try
            {
                quantity = Convert.ToDouble(e.FormattedValue.ToString());
                if (quantity == 0)
                {
                    MessageBox.Show("The quantity can not be Zero", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    e.Cancel = true;
                    return;
                }
            }
            catch
            {
                MessageBox.Show("The quantity should be decimal value.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                e.Cancel = true;
                return;
            }
        }
    }
-1
ответ дан Barna Tekse 25 August 2018 в 21:21
поделиться

вы можете установить Focus на конкретный Cell, установив для свойства Selected значение true

dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;

, чтобы избежать установки только множественного выбора

dataGridView1.MultiSelect = false;
11
ответ дан Binil 25 August 2018 в 21:21
поделиться
            //For me it's the best way to look for the value of a spezific column
            int seekValue = 5;
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                var columnValue = Convert.ToInt32(row.Cells["ColumnName"].Value);
                if (columnValue == seekValue)
                {
                    dataGridView1.CurrentCell = row.Cells[0];
                }
            }
0
ответ дан Ingo Barrenpohl 25 August 2018 в 21:21
поделиться

У меня была аналогичная проблема. Я спрятал несколько столбцов, а затем попытался выбрать первую строку. Это действительно не работает:

datagridview1.Rows[0].Selected = true;

Поэтому я попытался выбрать cell[0,0], но он также не работал, потому что эта ячейка не отображалась. Теперь мое окончательное решение работает очень хорошо:

datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;    
datagridview1.CurrentCell = datagridview1.FirstDisplayedCell;

Итак, это выбирает полную первую строку.

3
ответ дан Mickaël Derriey 25 August 2018 в 21:21
поделиться

проблема с datagridview заключается в том, что она автоматически выбирает первую строку, поэтому вы хотите очистить выделение с помощью

grvPackingList.ClearSelection();
dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;  

, иначе это не сработает

5
ответ дан Nighil 25 August 2018 в 21:21
поделиться

DataGridView1.CurrentCell = DataGridView1.Item ("ColumnName", 5)

0
ответ дан Prasad Kumarasinghe 25 August 2018 в 21:21
поделиться
public void M(){ 
  dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
  dataGridView1.CurrentCell.Selected = true; 
  dataGridView1.BeginEdit(true);
}
1
ответ дан SMUsamaShah 25 August 2018 в 21:21
поделиться

Просто Простой и Цвет сетки пропуска () где угодно.

Private Sub Gridcolor()
    With Me.GridListAll
        .SelectionMode = DataGridViewSelectionMode.FullRowSelect
        .MultiSelect = False
        '.DefaultCellStyle.SelectionBackColor = Color.MediumOrchid
    End With
End Sub
-1
ответ дан WaKo 25 August 2018 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: