Доступ к DataGridView без ошибок
У меня есть DataGridView, размещенный на панели, а свойство visible панели изначально имеет значение false. чтобы установить свойство visible панели true, нажмите кнопку.
Это код, который запускается:
using(SqlConnection c = new SqlConnection(connStr))
{
string query = "SELECT username, viewfldr, status FROM DirList ORDER BY viewfldr";
DataTable tbl = new DataTable();
using(SqlDataAdapter da = new SqlDataAdapter(query, c))
{
c.Open();
da.Fill(tbl);
c.Close();
}
dataGridView1.DataSource = tbl;
dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Verdana", 10F, FontStyle.Bold);
dataGridView1.Columns[0].HeaderText = "User Name";
dataGridView1.Columns[1].HeaderText = "Folder";
dataGridView1.Columns[2].HeaderText = "Status";
dataGridView1.Columns[0].Width = 115;
dataGridView1.Columns[1].Width = 342;
dataGridView1.Columns[2].Width = 100;
dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
panel2.Visible = false;
panel1.Visible = true;
Я хочу установить глобальную переменную в значения из DataGridView каждый раз, когда пользователь выбирает другую строку. в SelectionChanged
событие у меня есть:
int rw = dataGridView1.SelectedCells[0].RowIndex;
fld = dataGridView1.Rows[rw].Cells[1].Value.ToString();
usr = dataGridView1.Rows[rw].Cells[0].Value.ToString();
Однако каждый раз, когда я нажимаю кнопку, чтобы сделать панель видимой, я получаю сообщение об ошибке:
Индекс был вне диапазона. Должен быть неотрицательным и меньшим, чем размер коллекции.
Когда я проверил таблицу, я заметил, что она имеет одну запись. Я пытался положить код в Validating
а также Validated
события, чтобы попытаться исправить ошибку, но ничего не работает.