我有gridview我能够在运行时填充数据。如何在运行时将未绑定列添加到该gridview。之后,我需要在未绑定的列上添加一个删除按钮并查看。最后如何在特定的lookupedit和删除按钮上编写事件?
答案 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检测发生的点击列并相应地采取行动。