2015-10-22 4 views
1

Я попытался получить ответ на этот вопрос, но до сих пор никакая помощь не способна делать то, что я хочу.Копировать значения DataGridView в TextBox

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

private void DataGridView01_SelectionChanged(object sender, EventArgs e) 
{ 
    if (DataGridView01.SelectedRows.Count > 0) 
    { 
     personIDTextBox.Text = DataGridView01.SelectedRows[0].Cells[0].Value.ToString(); 
     comboBox1.Text = DataGridView01.SelectedRows[0].Cells[1].Value.ToString(); 
     Txt_FirstName.Text = DataGridView01.SelectedRows[0].Cells[2].Value.ToString(); 
     mIDDLENAMETextBox.Text = DataGridView01.SelectedRows[0].Cells[3].Value.ToString(); 
     sURNAMETextBox.Text = DataGridView01.SelectedRows[0].Cells[4].Value.ToString(); 
     cITYTextBox.Text = DataGridView01.SelectedRows[0].Cells[5].Value.ToString(); 
     eMAILTextBox.Text = DataGridView01.SelectedRows[0].Cells[6].Value.ToString(); 
    } 
    } 

Когда я запускаю программу, у меня нет ошибок, но она не выводит данные в текстовое поле. Кто-нибудь знает, что я делаю неправильно?

+0

Вы делаете выбрать строку, не так ли? - Также: в вашем коде есть, по-видимому, один кусочек; ты уверен, что это написано? – TaW

+0

Вы поставили точку останова, чтобы узнать, что такое значение DataGridView01.SelectedRows.Count? – User2012384

+0

@TaW Да, я выбираю строку ....... Я поставил точку останова и попытался проверить это, но он просто говорит: «Имя DataGridView01 не существует в текущем контексте. – imamage597

ответ

1

Подключают СОБЫТИЕ:

Это самое основное, что вам нужно научиться кода в VS. Короче говоря, это означает, что к событию подключено имя события, здесь DataGridView01_SelectionChanged. Для этого можно либо использовать код, либо один вставить его в правильный слот панели событий вкладки свойств. Выберите DataGridView, откройте панель событий (тот со вспышкой) и найдите событие SelectionChanged! Здесь вставьте название события, и все готово.

enter image description here

(у меня есть только немецкие версии VS установлен ..)

Результат отражается в файле form_designer.cs, и это то же самое (в обратном направлении), как двойной щелчок, что затем заполнение сгенерированного кода.

Элементы управления имеют много событий; один - это по умолчанию, и это может быть сгенерировано двойным щелчком мыши сам контроль в дизайнере. Но в конце концов вы будете нуждаться во всех 3 способа генерировать и крюк вверх события, (а также иногда их удаления.)

+0

Хмм, я не уверен, где находится панель событий? Я пробовал смотреть, но я не вижу одного с желтой вспышкой. – imamage597

+0

Это одна из панелей вместе со областью свойств, как правило, справа, и вспышка не желтая во всех версиях VS, см. Скриншот! – TaW

+0

Спасибо, сейчас это работает. Мне просто интересно, почему учебники не охватывают это? Я прочитал более 20 разных и никогда не сталкивался с этим. – imamage597

0

При попытке получить данные из datagridview я использую несколько иной подход.

Try делает personIDTextBox.Text = DataGridView01.SelectedCells[0].Value.ToString();

но вместо этого события находясь на изменения выбора, переключитесь на CellClick и изменить свойство собственности выбора строки DataGridView в полной строке выбора. после того, что вы можете изменить SelectedCell[0] номер, чтобы соответствовать какую ячейке вы хотите

+0

Спасибо за попытку помочь, но с этим я получаю DataGridView не содержит определения для SelectedCell. – imamage597

+0

Извините, я просто заметил опечатку в том, что я написал - 'SelectedCells [0]' - это метод (множественное число, а не единственное). Ответ обновлен – Takarii

0

Если вы хотите, чтобы отобразить DataGridView выбранные строки в соответствующие текстовые поля, прекрасные ниже шаги ,

Шаг 1: 1. Изменение режима Выбор DataGridView в FullRowSelect в DataGridView собственности. 2. Создайте событие щелчка ячейки в представлении сетки данных с использованием свойства. enter image description here 3. Введите код и проверить его, оно может полезно

private void DataGridView01_CellClick(object sender,DataGridViewCellEventArgs e) 
{ 
if (DataGridView01.Rows.Count > -1) 
{ 
PersonIdTextBox.Text=DataGridView01.Rows[e.RowIndex].Cells[0].Value.ToString(); 
comboBox1.Text = DataGridView01.Rows[e.RowIndex].Cells[1].Value.ToString(); 
Txt_FirstName.Text = DataGridView01.Rows[e.RowIndex].Cells[2].Value.ToString(); 
mIDDLENAMETextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[3].Value.ToString(); 
sURNAMETextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[4].Value.ToString(); 
cITYTextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[5].Value.ToString(); 
eMAILTextBox.Text = DataGridView01.Rows[e.RowIndex].Cells[6].Value.ToString(); 

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