如何在运行时将未绑定列添加到gridview并删除按钮?

时间:2014-05-30 16:04:34

标签: c# winforms gridview devexpress

我有gridview我能够在运行时填充数据。如何在运行时将未绑定列添加到该gridview。之后,我需要在未绑定的列上添加一个删除按钮并查看。最后如何在特定的lookupedit和删除按钮上编写事件?

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式将列添加到数据网格视图中:

dataGridView.Columns.Add(new DataGridViewColumnType(), "SomeName");

为了在运行时添加一个删除按钮,您只需要在表单上有一个按钮,在窗体加载时禁用该按钮,您可以在加载时使用以下代码禁用它:

this.btnDelete.Enabled = false;

在运行时启用它:

this.btnDelete.Enabled = true;

你会对查找编辑做同样的事情。要在这些事件上添加事件,您只需在运行程序之前编码事件,并在事情发生时调用它们。

如果这没有意义,请告诉我。

答案 1 :(得分:1)

以下是在运行时为datagridview创建列的示例:

grdExpressions.SuspendLayout();
grdExpressions.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

DataGridViewCheckBoxColumn enabledColumn = new DataGridViewCheckBoxColumn();
enabledColumn.Name = "columnEnabled";
enabledColumn.HeaderText = "EN";
enabledColumn.FillWeight = 1;
enabledColumn.MinimumWidth = 30;
grdExpressions.Columns.Add(enabledColumn);

grdExpressions.ResumeLayout(false);
grdExpressions.PerformLayout();

您基本上首先创建DataGridView(CheckBox|TextBox|etc)Column。无论你想要哪种类型的列。如果通过lookupedit表示同一列中的文本框和按钮,则标准datagridview中没有此类列。但是,您可以在其前面添加ButtonCell和文本。还有用户控件可以做到这一点。

为了在我提供的代码中的复选框列上编写事件,您需要处理datagridview的CellClick。或者,如果您想要处理添加的ButtonCell按钮,请再次处理CellClick并检查单击了哪个列并采取相应措施。

为了处理文本框列的TextChanged,您可以处理数据网格视图的CellEndEdit。基本上你必须使用datagridview的事件与所有这些不同类型的事件进行交互,然后使用传递的事件args检测发生的点击列并相应地采取行动。