【问题标题】:Combobox Winforms组合框 Winforms
【发布时间】:2021-12-29 06:26:52
【问题描述】:

目前我正在构建会员表格,我尝试使用组合框进行付款类型选择(直接借记卡或信用卡)。 基本上我要做的是当用户从下拉列表中选择选项时,下面将生成用户可以填写 IE 信用卡号或直接借记帐户信息的字段。无论如何,我可以在不显示两者的情况下做到这一点?我是新手,所以希望有一种不复杂的方法,也许我可以隐藏一些框,直到选择该选项?

【问题讨论】:

  • 挂钩到组合框上的选择更改事件,然后相应地隐藏/显示元素。

标签: c# winforms


【解决方案1】:

1:创建两个面板

2:您调用的第一个是 DirectDebit_Option,第二个是 CreditCard_Option 或您想调用的任何其他名称

3 将两个面板的可见性设置为 false

4:将您的付款方式所需的所有控件添加到面板中

5:将 SelectedIndexChanged-Event 添加到选择这两种付款方式的组合框中

6:在 SelectedIndexChanged-Event 中,您现在可以执行以下操作:

DirectDebit_Option.Visible = comboBox1.SelectedIndex == 0; 
CreditCard_Option.Visible = comboBox1.SelectedIndex == 1;

【讨论】:

  • 谢谢谢谢!!!!
  • 这 10 行可能会变成 2 行 DirectDebit_Option.Visible = comboBox1.SelectedIndex == 0; CreditCard_Option.Visible = comboBox1.SelectedIndex == 1;
  • 是的,你是对的,谢谢
  • 非常感谢您!我的代码看起来更整洁,只有 2 行!
【解决方案2】:

您可以为 direct debitcredit card 创建两个 UserControl,当用户选择 direct debit 时,在 ComboBox 的 selected_Item 事件中,您将在任何创建的 面板 中调用您的 Direct_debit_UserControl,然后对 信用卡 选择执行相同操作,如下所示:

private comboBox1_SelectedItem(object sender, EventArgs e)
{
  panel1.Controls.Clear();
  
  if (comboBox1.SelectedItem == "direct debit")
  {
    panel1.Controls.Add(new direct_debit_UserControl(){DockType = DockType.Fill} );
  }
  else
  {
    panel1.Controls.Add(new credit_card_UserControl(){DockType = DockType.Fill} );
  }
}

要从 Visual Studio 添加新的用户控件,请转到 解决方案资源管理器 > 右键单击您的项目 > 添加 > 新建项目... > 在对话框中选择 User Control

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2012-02-15
    • 2010-09-14
    • 1970-01-01
    相关资源
    最近更新 更多