2015-01-27 2 views
0

В моем C# DataGridView, когда я дважды нажимаю на строку, я хочу, чтобы значение в ячейке столбцов «ИД» было назначено переменной. Как мне это сделать??Извлечь значение ячейки DataGridView для переменной при двойном щелчке

+0

Показать код и что вы попробовали? –

+0

Я понятия не имею, что попробовать, поэтому у меня нет кодов для отображения:/ –

+0

Отличным местом для начала любого вопроса о классе библиотеки .NET является документация MSDN. Он покажет вам все методы, которые вы можете вызвать на объект такого типа, все события, которые вы можете прослушать, и т. Д. Сканирование через эту документацию, ищущую слова, которые описывают мою проблему, почти всегда дает мне преимущество в ответе. Вот ссылка для DataGridView: https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview%28v=vs.110%29.aspx – adv12

ответ

2

В DataGridView отсутствует событие двойного щелчка строки. Но вы можете попробовать событие ячейки двойной щелчок вместо следующим образом:

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     string value = ""; 
     value = dataGridView1.Rows[e.RowIndex].Cells["ID"].Value.ToString(); 
    } 

Также обратите внимание, чтобы проверить, если e.RowIndex> -1, только в случае, если люди нажимают на заголовок DataGridView, то это вызовет исключение.

+0

Я подключил свой DataGridView к базе данных SQL. При двойном щелчке по ячейке «Идентификатор столбца не может быть найден». Приходит. –

+0

@DaveHowson Проверьте свой DataGridView в дизайнере и убедитесь, что есть столбец и его «Имя» (под вкладкой «Дизайн») свойство «ID». – mhan0125

+0

@DaveHowson Или вы можете использовать индекс ячейки (начиная с 0), чтобы найти столбец «ID» вашего DataGridView, было бы проще, если вам не нужно будет менять последовательность столбцов в будущем. – mhan0125

0

Я не уверен, попробуйте это: -

private void datagridview1_SelectionChanged(object sender, EventArgs e) 
{ 
    if (datagridview1.SelectedCells.Count > 0) 
    { 
     int selectedrowindex = datagridview1.SelectedCells[0].RowIndex; 

     DataGridViewRow selectedRow = datagridview1.Rows[selectedrowindex]; 

     string value= selectedRow.Cells["ID"].Value.ToString(); 


    } 

Я согласен, это не самый лучший подход.

+0

Я связал свой DataGridView с базой данных SQL, у меня есть столбец с именем ID. Чтобы проверить, работает ли это, я использовал текстовое поле с textbox1.text = значение , но оно не отображает значение –

+0

Вместо SelectionChanged я использовал CellDoubleClick, и эта ошибка возникает «Столбец с именем ID не может быть найден». –

0

Большое спасибо @ mhan0125 и всем остальным. Эта ошибка возникла из-за того, что хотя мой столбец был идентификатором имени, он не был идентифицирован кодом как идентификатор, поэтому мне пришлось перейти в раздел «Редактировать столбцы» и переименовать его из idDataGridViewTextBoxColumn в ID. Еще раз спасибо ..

+0

Приятно слышать, что проблема решена, было бы очень полезно посмотреть на автоматически созданный код разработчика. Особенно, когда вы хотите получить информацию о дизайнерах, это намного быстрее, чем через GUI. – mhan0125

Смежные вопросы