【问题标题】:ComboBox Selected Value to be BlankComboBox 选择的值为空白
【发布时间】:2013-07-26 08:54:44
【问题描述】:

用途:VS 2012;

我的表单中有一个附加到数据源的组合框。一切正常。当我运行表单时,一切正常;我可以在下拉列表中选择一个项目,它也会更新到数据源。当我需要在保存或删除我选择的内容后取消选择/恢复选择的内容时,我的问题就出现了(对于该字段值,基本上应该为 null)。

我们的遗留系统是在 Delphi 3 & 5 中构建的,用户可以在下拉列表上单击鼠标右键并获得一个类似按钮的小弹出式按钮,名为

空白

空白已选择。我找不到任何与用户在.NET 组合框中选择的内容相同的东西。

【问题讨论】:

  • 通常情况下,我只会在数据源底部添加一个额外的空白项。
  • 您是否尝试将SelectedIndex 设置为-1

标签: c# winforms


【解决方案1】:

您可以使用以下代码在 dropdown 中添加一个名为 -Select-(或类似名称)的新项目:

drp.DataSource = dataSet;
drp.DataBind();
// do it after binding
    drp.Items.Insert(0, new ListItem("-Select-", "NA"));

如果你在 xaml 中绑定,那么在 page_load 事件中你只能写这一行

 drp.Items.Insert(0, new ListItem("-Select-", "NA"));

现在如果用户想取消选择,他/她只需选择-Select- item。

【讨论】:

    【解决方案2】:

    在感谢您的所有回答和建议的同时,我使用了@V4Vendetta 的想法并编写了我的解决方案。

    类似于在 datagridview 中单击 Delete 键删除记录,我采用相同的概念并将我的解决方案与 Delete em> 键。

    我所做的是为 ComboBox 的按键事件创建了一个处理程序,例如:

    private void comboBox_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Delete)
        {
                (sender as ComboBox).SelectedIndex = -1;    
        }
    }
    

    并链接到每个可用的组合框

    ComboBox1.KeyDown += new KeyEventHandler(comboBox_KeyPress);
    ComboBox2.KeyDown += new KeyEventHandler(comboBox_KeyPress);
    

    现在当用户点击Delete键而ComboBox被选中/激活时,它会变成空白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 2013-06-13
      • 2015-09-10
      • 2012-01-26
      • 1970-01-01
      • 2015-11-14
      相关资源
      最近更新 更多