sof*_*fun 12 c# datatable datagridview datarow winforms
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;
Run Code Online (Sandbox Code Playgroud)
出现文本但按钮从不显示.
Eva*_*n L 34
假设你是在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);
}
Run Code Online (Sandbox Code Playgroud)
当然,您必须处理CellClick网格事件以使用按钮执行任何操作.
在DataGridView初始化代码中的某处添加它
dataGridViewSoftware.CellClick += dataGridViewSoftware_CellClick;
Run Code Online (Sandbox Code Playgroud)
然后创建处理程序:
private void dataGridViewSoftware_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == dataGridViewSoftware.Columns["uninstall_column"].Index)
{
//Do something with your button.
}
}
Run Code Online (Sandbox Code Playgroud)
Ram*_*rja 10
简单一点.
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);
}
Run Code Online (Sandbox Code Playgroud)