[英]How to add a button to a column in the DataGridView
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Software Title", typeof(string)));
dt.Columns.Add(new DataColumn("Version", typeof(string)));
dt.Columns.Add(new DataColumn("Uninstall", typeof(System.Windows.Forms.Button)));
DataRow dr = dt.NewRow();
dr[0] = "App";
dr[1] = "1.0";
Button uninstall = new Button();
uninstall.Text = "Uninstall";
dr[2] = uninstall;
dt.Rows.Add(dr);
dataGridViewSoftware.DataSource = dt;
文本出現,但按鈕永遠不會出現。
假設您在 Windows 窗體中,您需要將DataGridViewButtonColumn
添加到您的DataGridView
- 而不是直接添加到DataTable
。
這應該在您將DataTable
綁定到DataGridView
之后發生。
這樣的事情應該工作:
DataGridViewButtonColumn uninstallButtonColumn = new DataGridViewButtonColumn();
uninstallButtonColumn.Name = "uninstall_column";
uninstallButtonColumn.Text = "Uninstall";
int columnIndex = 2;
if (dataGridViewSoftware.Columns["uninstall_column"] == null)
{
dataGridViewSoftware.Columns.Insert(columnIndex, uninstallButtonColumn);
}
當然,您必須處理網格的CellClick
事件才能對按鈕執行任何操作。
將此添加到您的 DataGridView 初始化代碼中的某處
dataGridViewSoftware.CellClick += dataGridViewSoftware_CellClick;
然后創建處理程序:
private void dataGridViewSoftware_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == dataGridViewSoftware.Columns["uninstall_column"].Index)
{
//Do something with your button.
}
}
讓它變得簡單。
DataGridViewButtonColumn button = new DataGridViewButtonColumn();
{
button.Name = "button";
button.HeaderText = "Button";
button.Text = "Button";
button.UseColumnTextForButtonValue = true; //dont forget this line
this.dataGridView1.Columns.Add(button);
}
您可以使用以下最佳方法
gvEmployees.AutoGenerateColumns = false;
gvEmployees.ColumnCount = 4;
DataGridViewButtonColumn SelectButton = new DataGridViewButtonColumn();
SelectButton.Name = "Select";
SelectButton.Text = "Select";
SelectButton.UseColumnTextForButtonValue = true;
if (gvEmployees.Columns["Select"] == null)
{
gvEmployees.Columns.Insert(0, SelectButton);
}
DataGridViewButtonColumn DeleteButton = new DataGridViewButtonColumn();
DeleteButton.Name = "Delete";
DeleteButton.Text = "Delete";
DeleteButton.UseColumnTextForButtonValue = true;
if (gvEmployees.Columns["Delete"] == null)
{
gvEmployees.Columns.Insert(1, DeleteButton);
}
gvEmployees.Columns[2].Name = "EmployeeID";
gvEmployees.Columns[2].HeaderText = "EmployeeID";
gvEmployees.Columns[2].DataPropertyName = "EmployeeID";
請告訴我,添加到datagridview后如何清除按鈕。 以下三個步驟不起作用。
datagridview1.DataSource = null;
datagridview1.Rows.Clear();
datagridview1.Refresh();
謝謝保羅。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.