当前位置: 首页 > 知识库问答 >
问题:

按组合框项值删除组合框项

艾俊晖
2023-03-14

我有两个组合框。我正在填充这样的两个组合框。组合框1和2的名称是cmbpartyName和cmbprefPT2。

    SqlDataReader reader = new VotingOP().getPartyNamesToCombo();
        while (reader.Read())
        {
          cmbPartyName.Items.Add(new MyComboItem() { MyItemID = Convert.ToInt32(reader["partyID"]), MyItemName = reader["partyName"].ToString() });
        }
        reader.Close();
        cmbPartyName.ValueMember = "MyItemID";
        cmbPartyName.DisplayMember = "MyItemName";

        SqlDataReader reader01 = new VotingOP().getPartyNamesToCombo();
        while (reader01.Read())
        {

            cmbPrefPT2.Items.Add(new MyComboItem() { MyItemID = Convert.ToInt32(reader01["partyID"]), MyItemName = reader01["partyName"].ToString() });
        }
        reader01.Close();
        cmbPrefPT2.ValueMember = "MyItemID";
        cmbPrefPT2.DisplayMember = "MyItemName";

在这里,我从combox1中选择一个值,在它所选的索引更改事件中,如下所示。

      private void cmbPartyName_SelectedIndexChanged(object sender, EventArgs e)
    {
        MyComboItem selectedItem = (MyComboItem)cmbPartyName.SelectedItem as MyComboItem;
        if (selectedItem != null)
        {

            MessageBox.Show(String.Format("You've just selected the '{0}' partyID with the Name {1}",selectedItem.MyItemID,selectedItem.MyItemName));

        }
    }

由于两个组合框具有相同的值,如何从第二个组合框cmbPrefPT2中删除第一个组合框的选定值?

共有1个答案

胡新
2023-03-14

您可以让您的MyComboItem实现IEquatable

  public class MyComboItem : IEquatable<MyComboItem>
  {
    public int MyItemId { get; set; }
    public string MyItemName { get; set; }
    public bool Equals(MyComboItem other)
    {
        return MyItemId == other.MyItemId;
    }
  }

然后您可以在事件处理程序中调用第二个组合框的删除方法,传递第一个组合框的选择项

MyComboItem selectedItem = (MyComboItem)cmbPartyName.SelectedItem as MyComboItem;
    if (selectedItem != null)
    {
         cmbPrefPT2.Items.Remove(cmbPartyName.SelectedItem);
    }
 类似资料:
  • 我的表单上有2个组合框(在表单加载事件中)。第一个组合框在表单加载后从选择语句中获取一个值。我想在我的第二个组合框中使用该值。这是我的代码: 1st组合框= cbDelivery 2de组合框= cbOrderNo 此组合框位于: private void CB delivery _ selectedindex changed(对象发送方,事件参数e) 因此,一旦我从1ste组合框中选择一个值,我

  • 我使用Saxon CE和XSLT 2.0在页面上生成和操作控件。生成组合框不是问题,但当我更改组合框时,似乎无法从组合框的选项条目中获取值。下面是示例性XSLT代码: 我想做的是当用户更改组合框的值时,他们选择的选项的值存储在变量$myVal中。然后我使用该变量来影响主页上的转换。现在我拥有的根本不起作用(目前它获取所有选项的所有值,而不是用户选择的那个)。 思想?

  • 问题内容: 我需要删除具有给定值的数组项: 可以用更短(更有效)的方式完成吗? 问题答案: 可以使用简单的单缸衬套即可完成。 具有此数组: 你可以做: 的值为: 希望它有助于编写漂亮的代码。

  • 我目前正在创建一个工具来为不同的事件提交报告。 在第一步中,用户选择通话中的每个人(我们有一个26人的团队)。在下一步中,将每个选定的人写入6个不同的组合框中,以便用户可以选择每辆车的驾驶员和指挥官(3辆车-每辆车上的指挥官和驾驶员,因此有6个组合框)。 我的问题是:我需要防止在每辆车上都选择同一个人作为驾驶员,或者同时作为驾驶员和指挥官。因此,我尝试通过ChangeListener从其他组合框中

  • 首先,我对我的英语感到抱歉。我是一个使用VS Express 2013的C#初学者程序员。 我认为这是我的简单问题:我有一个组合框(cboMantello),里面有两个项目。然后我有一个按钮,使用所选项目的属性并将它们添加到我的角色统计中。另一个按钮删除该属性。 为了避免用户垃圾邮件,我禁用了第一个按钮,并设置了我的组合框。启用为false。这时问题来了。禁用组合框后,它会返回列表中的第一项,因此

  • 说到编程或java,我只是一个完全的初学者。所以一开始,我的计划是使用JavaFX(结合场景构建器)创建一个窗口,在那里我有一个按钮,可以引导我进入另一个窗口,在那里我有一个组合框。我谷歌了几个小时,想找到一种方法来填充组合框,但我找到的所有解决方案都不适合我。这就是为什么我认为我在这里犯了一些错误,我希望你能以某种方式帮助我。或者在列表中给我一个提示,我应该学习/阅读什么才能自己找到解决方案。首