Как добавить кнопку в каждую строку столбца уже связанного представления данных в приложении Windows? - PullRequest
1 голос
/ 11 сентября 2009

Я хочу добавить кнопку в каждую строку столбца уже ограниченного представления данных и добавить в него событие (в VS 2005, приложение Windows).

Я много искал, но не смог найти работающее решение.

1 Ответ

4 голосов
/ 11 сентября 2009

перед привязкой к набору источников данных:

grd.AutoGenerateColumns = false;

создайте все столбцы DataGridView и привяжите их к источнику данных:

DataGridViewTextBoxColumn dgvc = new DataGridViewTextBoxColumn();
dgvc.HeaderText = "column_header";
dgvc.DataPropertyName = "column_name";

создать DataGridViewButtonColumn.

DataGridViewButtonColumn dgvbt = new DataGridViewButtonColumn();            

Если вы хотите, чтобы этот столбец не был связан, установите текст заголовка, тот же текст на всех кнопках:

dgvbt.HeaderText = "OK?";
dgvbt.Text = "ok";                        // works also when bound
dgvbt.UseColumnTextForButtonValue = true; //

Если вы хотите, чтобы ваш столбец также был ограничен, а каждая кнопка имела текст основной ячейки, свяжите его:

dgvbt.DataPropertyName = "column_bt";

Добавить созданные столбцы в DataGridView:

grd.Columns.Add(dgvc);
grd.Columns.Add(dgvbt);

обрабатывать событие CellClick объекта DataGridView:

grd.CellClick += new DataGridViewCellEventHandler(grd_CellClick);


void grd_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex == index_of_button_column)
    {
        MessageBox.Show(this, e.RowIndex.ToString() + " Clicked!");
        //...
    }
}

Подробнее см .:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewbuttoncolumn.aspx

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