繁体   English   中英

[WinForm]标签页中的组合框

[英][WinForm]Combobox in Tabpage

创建标签页并添加组合框动态时出现问题。 问题是,当 select 选项卡页的组合框中的一个值时,所有选项卡页中的组合框的值都更改为刚刚在组合框中选择的值。

如何防止其他标签页中组合框的值自动更改?

假设您要设置 ComboBox 控件,如下所示(不管控件是如何创建的)每个 ComboBox 不会影响其他控件。

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();

        Shown += OnShown;
    }

    private void OnShown(object? sender, EventArgs e)
    {
        // changing one does not affect others
        comboBox1.DataSource = MonthNames;
        comboBox2.DataSource = MonthNames;
    }

    private List<string> MonthNames 
        => DateTimeFormatInfo.CurrentInfo.MonthNames.Take(12).ToList();
}

虽然这种方法在更改一个 ComboBox 时会更改另一个。

public partial class Form1 : Form
{
    private readonly BindingSource _bindingSource = new ();
    public Form1()
    {
        InitializeComponent();

        Shown += OnShown;
    }

    private void OnShown(object? sender, EventArgs e)
    {
        _bindingSource.DataSource = MonthNames;
        comboBox1.DataSource = _bindingSource;
        comboBox2.DataSource = _bindingSource;
    }

    private List<string> MonthNames 
        => DateTimeFormatInfo.CurrentInfo.MonthNames.Take(12).ToList();
}

简而言之,即使创建控件的方式侧重于每个 ComboBox 的加载方式,上述内容也应提供洞察力。

如果以上内容没有帮助,您需要提供一个小代码示例,这样我们就知道您是如何设置控件的了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM