【问题标题】:Finding a value in a database from a DataGridViewColumn从 DataGridViewColumn 中查找数据库中的值
【发布时间】:2014-04-08 15:22:32
【问题描述】:

我有一个DataGridView,我想从中添加搜索条件。这应该设置为一个帐单表单,其中项目已经保存在某个表中。

因此,每当我开始在名为BillDataGridViewColumn 中输入一个值时,就会打开一个新的ListBox,显示与使用%LIKE 查询输入的值具有相似名称的项目列表。

我在编写%LIKE 查询或显示ListView 时没有问题,我只是不明白如何在输入DataGridViewColumn 的值时主动使用它。

【问题讨论】:

    标签: c# winforms datagridview datagrid


    【解决方案1】:

    您必须为您的DataGridView 创建一个使用DataGridView.CommitEdit 的事件处理程序DataGridView.CurrentCellDirtyStateChanged。当您的单元格值更改时,此事件可以进行必要的调用以查询您的数据库并主动创建新的ListView

    MSDN article for DataGridView.CommitEdit 很好地解释了这一点。您只需添加ListView

    【讨论】:

      【解决方案2】:

      您必须捕获该特定列单元格的 TexChanged 事件。

      在表单加载事件中添加以下代码

      this.dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);
      

      Add the following events

      void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
      {
         //Give the right column index
         if (dataGridView1.CurrentCell.ColumnIndex == 0)
         {
            TextBox tb = (TextBox)e.Control;
            tb.TextChanged += new EventHandler(tb_TextChanged);
         }
      }
      

      在下面的事件中编写逻辑,该事件将在单元格内容被修改时触发。

      void tb_TextChanged(object sender, EventArgs e)
      {
      
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-06
        • 2018-11-24
        相关资源
        最近更新 更多