0

我有四个组合框,我想用从同一张表带来的相同数据填充它们,但这项任务在袖珍 PC 设备上需要很多时间。所以我想知道是否有比这更快的方法:

private void autreform_Load(object sender, EventArgs e)
        {

            DataTable dtable = new DataTable();
            SqlDataAdapter adapter = new SqlDataAdapter("select designation, num_produit from STK_PRODUITS_GENERIQUE where num_famille in (select num_famille from  parametrage_vidange where produit='autres') ", mySqlConnection1);
            adapter.Fill(dtable);

            try
            {
                remplircombo(comboBox1, dtable);
                remplircombo(comboBox2, dtable);
                remplircombo(comboBox3, dtable);
                remplircombo(comboBox4, dtable);
            }
            catch (Exception excr) { MessageBox.Show(excr.Message); }
        }

 private void remplircombo(ComboBox combo, DataTable dtable )
        {
            combo.DataSource = new BindingSource(dtable, null);
            combo.DisplayMember = "designation";
            combo.ValueMember = "num_produit";
        }
4

2 回答 2

0

不,这是可以接受的。但是,我会将您查询数据库的逻辑移到一个单独的类中。

于 2011-08-22T13:38:22.517 回答
0

通常你不应该在一个组合框中添加很多项目;它很慢,用户很难选择正确的项目。

我更喜欢使用用户控件以友好的方式显示我的数据。

如果这不是一个令人满意的更改,您可以在将项目加载到组合框之前暂停表单布局:

try
{
this.SuspendLayout();
}
finally
{
this.ResumeLayout();
} 
于 2011-08-22T13:43:34.033 回答