-1

我从远程 sql 数据库中预加载了一些数据以在使用过程中加快应用程序的速度,并且我在表单上有几个组合框。

当应用程序加载时,我预加载了一个名为“用户名”的静态列表值。

我将两个组合数据源都设置为“用户名”。但是,当我运行应用程序并从第一个组合中选择用户名时,第二个组合中也选择了相同的用户名,反之亦然?

我知道我可以将用户名预加载为不同的静态变量,但这需要额外的时间来加载应用程序,我相信这只是我完全忽略的非常愚蠢的事情!

    static List<string> Usernames = new List<string>();
    public Form1()
    {
        InitializeComponent();

        Usernames.Add("Paul");
        Usernames.Add("Elaine");
        Usernames.Add("Elliot");
        Usernames.Add("Matt");
        Usernames.Add("Brian");

        comboBox1.DataSource = Usernames;
        comboBox2.DataSource = Usernames;

    }

谢谢先进

保罗

4

2 回答 2

3

尝试使用BindingSource

static List<string> Usernames = new List<string>();
public Form1()
{
    InitializeComponent();

    Usernames.Add("Paul");
    Usernames.Add("Elaine");
    Usernames.Add("Elliot");
    Usernames.Add("Matt");
    Usernames.Add("Brian");

    BindingSource bs1 = new BindingSource();
    bs1.DataSource = Usernames;
    comboBox1.DataSource = bs1;
    BindingSource bs2 = new BindingSource();
    bs2.DataSource = Usernames;
    comboBox2.DataSource = bs2;
}

BindingSource 实例为两个组合维护单独的货币管理(在基础数据源上的定位)

于 2013-09-05T18:14:17.933 回答
0

我知道我可以将用户名预加载为不同的静态变量,但这需要额外的时间来加载应用程序

它不会增加大量时间。主要问题是每次加载页面时都会向静态列表添加值。您只需添加一次。

你有几个选择:

  1. Page在s静态构造函数中加载名称:

    static List<string> Usernames = new List<string>();
    
    public static Form1()
    {
        Usernames.Add("Paul");
        Usernames.Add("Elaine");
        Usernames.Add("Elliot");
        Usernames.Add("Matt");
        Usernames.Add("Brian");
    }
    
    public Form1()
    {
        InitializeComponent();
    
        comboBox1.DataSource = Usernames;
        comboBox2.DataSource = Usernames;
    
    }
    
  2. 使列表非静态并每次加载它:

    List<string> Usernames = new List<string>();
    public Form1()
    {
        InitializeComponent();
    
        Usernames.Add("Paul");
        Usernames.Add("Elaine");
        Usernames.Add("Elliot");
        Usernames.Add("Matt");
        Usernames.Add("Brian");
    
        comboBox1.DataSource = Usernames;
        comboBox2.DataSource = Usernames;
    
    }
    
于 2013-09-05T18:12:38.587 回答