【发布时间】:2014-05-30 16:04:34
【问题描述】:
我有 gridview 我可以在运行时填充数据。如何在运行时将未绑定的列添加到该网格视图。之后,我需要在未绑定的列上添加一个删除按钮和查找编辑。最后如何在特定的查找编辑和删除按钮上编写事件?
【问题讨论】:
标签: c# winforms gridview devexpress
我有 gridview 我可以在运行时填充数据。如何在运行时将未绑定的列添加到该网格视图。之后,我需要在未绑定的列上添加一个删除按钮和查找编辑。最后如何在特定的查找编辑和删除按钮上编写事件?
【问题讨论】:
标签: c# winforms gridview devexpress
您可以通过以下方式将列添加到 datagridview:
dataGridView.Columns.Add(new DataGridViewColumnType(), "SomeName");
为了在运行时添加删除按钮,您只需要在表单上设置一个在加载表单时禁用的按钮,您可以在加载时使用以下代码禁用它:
this.btnDelete.Enabled = false;
要在运行时启用它:
this.btnDelete.Enabled = true;
您可以对查找编辑执行相同的操作。要在这些事件上添加事件,您只需在运行程序之前对事件进行编码,并在发生事情时调用它们。
如果这没有意义,请告诉我。
【讨论】:
以下是在运行时为 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。无论您想要哪种类型的列。如果通过查找编辑您的意思是同一列中的文本框和按钮,则标准数据网格视图中没有这样的列。但是,您可以在其前面添加 ButtonCell 和文本。还有一些用户控件可以做到这一点。
例如,为了在我提供的代码中的复选框列上写入事件,您需要处理数据网格视图的CellClick。或者,如果您想处理添加的ButtonCell 的按钮单击,请再次处理CellClick 并检查单击了哪一列并采取相应措施。
为了处理文本框列的TextChanged,您需要处理datagridview 的CellEndEdit。基本上,您必须使用 datagridview 的事件与所有这些不同类型的事件进行交互,然后使用传递的事件参数检测单击发生的列并采取相应的行动。
【讨论】: