我从远程sql数据库预加载一些数据以在使用期间加速应用程序,我在表单上有几个组合框。
当应用加载时,我会预加载一个名为“usernames”的静态List值。
我将两个组合数据源都设置为“usernames”。但是,当我运行应用程序并从第一个组合中选择一个用户名时,在第二个组合中也选择了相同的用户名,反之亦然?
我知道我可以将用户名预加载为不同的静态,但这需要额外的时间来加载应用程序,我确信这只是一些非常愚蠢的东西,我完全可以忽略!
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;
}
先谢谢你
保
答案 0 :(得分: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实例为两个组合维护单独的货币管理(定位在基础数据源上)
答案 1 :(得分:0)
我知道我可以将用户名预加载为不同的静态,但这需要额外的时间来加载应用
这不会增加很多时间。主要问题是每次加载页面时都要向静态列表添加值。您只需要添加一次。
您有几个选择:
在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;
}
使列表非静态并每次加载:
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;
}