【问题标题】:How to add unbound column to gridview and delete button on runtime?如何在运行时将未绑定的列添加到gridview并删除按钮?
【发布时间】:2014-05-30 16:04:34
【问题描述】:

我有 gridview 我可以在运行时填充数据。如何在运行时将未绑定的列添加到该网格视图。之后,我需要在未绑定的列上添加一个删除按钮和查找编辑。最后如何在特定的查找编辑和删除按钮上编写事件?

【问题讨论】:

    标签: c# winforms gridview devexpress


    【解决方案1】:

    您可以通过以下方式将列添加到 datagridview:

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

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

    this.btnDelete.Enabled = false;
    

    要在运行时启用它:

    this.btnDelete.Enabled = true;
    

    您可以对查找编辑执行相同的操作。要在这些事件上添加事件,您只需在运行程序之前对事件进行编码,并在发生事情时调用它们。

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

    【讨论】:

      【解决方案2】:

      以下是在运行时为 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 的事件与所有这些不同类型的事件进行交互,然后使用传递的事件参数检测单击发生的列并采取相应的行动。

      【讨论】:

        猜你喜欢
        • 2014-09-12
        • 2013-12-26
        • 1970-01-01
        • 2017-08-17
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        相关资源
        最近更新 更多