Назначьте каждую кнопку в DataGridView, чтобы открыть другую форму - PullRequest
0 голосов
/ 01 марта 2019

У меня есть DataGridView, где он показывает воспроизведение из базы данных MS Access, в данный момент я пытаюсь узнать, как назначить каждой кнопке что-то другое, например, показ новой формы или окна сообщения.

это код

    private void btnShowPlays_Click(object sender, EventArgs e)
    {

        OleDbConnection myConnection = GetConnection();

        try
        {               
            myConnection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = myConnection;
            string query = "select * from plays";
            command.CommandText = query; 


            OleDbDataAdapter da = new OleDbDataAdapter(command);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dataGridView.DataSource = dt;

            DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
            dataGridView.Columns.Add(btn);
            btn.HeaderText = "Options";
            btn.Name = "More Info";
            btn.Text = "More Info";
            btn.UseColumnTextForButtonValue = true;

            myConnection.Close();


        }
        catch (Exception ex)
        {
            MessageBox.Show("Exception in DBHandler" + ex);
        }

    }

Я пробовал это

     private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex==2)
        {
            MessageBox.Show((e.RowIndex+1).ToString() +" Information");
        }
    }

Я думаю, что-то не так с этим, но я пытаюсь сделать так, чтобы каждая кнопка в каждом ряду показываласьдругая форма или окно сообщения.

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, что что-то вроде этого должно решить вашу проблему:

private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    var gridView = (DataGridView)sender;

    if (gridView.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
        e.RowIndex >= 0)
    {
        //TODO: Button was clicked. Check the index of the row and do you specialized work for different rows.
    }
}

Это код для события, вы должны связать его с сеткой данных и записать параметр switch / if, используя rowIndex, чтобы иметь разныеФункциональность для каждой кнопки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...