簡體   English   中英

如何向DataGridView中的列添加按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM