代码之家  ›  专栏  ›  技术社区  ›  Southern Coder Chic

Winforms ComboBox正在运行时添加行项目

  •  4
  • Southern Coder Chic  · 技术社区  · 6 年前

    更新如下

    var billers = user.FindBillers();
    billers.Insert(0, new user { strLName = "- -" });
    billers.Insert(1, new user { strLName = "Provider Default" });
    
    
    cboBillingProvdr.DataSource = null;
    cboBillingProvdr.DataSource = billers;
    cboBillingProvdr.DisplayMember = "FullName";
    cboBillingProvdr.ValueMember = "ID";
    
    
    if (Currentuser.billerid == -1)
        cboBillingProvdr.SelectedIndex = 1;
    else if (CurrentUser.billerid > 0)
        cboBillingProvdr.SelectedValue = CurrentUser.billerid ;
    else
        cboBillingProvdr.SelectedIndex = 0;
    

    这就是 ComboBox 显示在 Form 如果有来自数据库的账单值(>0),请执行以下操作:

     - -
     Provider Default
     --
     Provider 1
     Provider 2
     Provider 3 
    

    更新:我没有在用户中看到任何地方。findbillers添加“-”。但我相信下面的代码也是以同样的形式实现的。当我发表评论时,一切似乎都起了作用。

        var Physicians= user.FindBillers();
        cboPhysician.DataSource = null;
        Physicians.Insert(0, new user { strFName = "--" });
        Physician.DataSource = Physicians;
        Physician.DisplayMember = "FullName";
    

    加载表单和随后的单击调用了这些,但我不知道为什么一个会影响另一个。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Ivan García Topete    6 年前

    您在此范围内的代码没有添加“-”项,您需要检查您的用户。FindBillers()方法(或将其作为编辑发布在此处)。应该有一行代码类似于:

    /* assuming the returned collection's name is 'findBillers' */
    findBillers.Insert(0, new user { "--" });
    /* or */
    findBillers.Add(new user { "--" });
    

    这样,您发布的列表将返回如下结果:

    --
    Provider 1
    Provider 2
    Provider 3 
    

    然后,用你的两行代码

    billers.Insert(0, new user { strLName = "- -" });
    billers.Insert(1, new user { strLName = "Provider Default" });
    

    您以此列表结束

    - - (Inserted at 0)
    Provider Default (Inserted at 1)
    --
    Provider 1
    Provider 2
    Provider 3 
    

    所以,你必须

    a) 注释/删除用户内部的行。FindBillers()

    b) 注释/删除您对账单的两个插入,并添加 Provider Default 内部用户。FindBillers()

    编辑: 您可以发布用户代码。FindBillers(),我将更新我的答案。

        2
  •  0
  •   Southern Coder Chic    6 年前

    已解决。我在user类中添加了另一个方法FindBillers1(),并调用它来填充第二个组合,它的工作听起来很疯狂。除了名称之外,FindBillers和FindBillers1之间没有区别。