Доступ к 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 события, чтобы попытаться исправить ошибку, но ничего не работает.

0 ответов

Другие вопросы по тегам