在表单加载上缓存数据

时间:2012-09-25 09:24:16

标签: c# winforms

我有一个c#窗体,使用线程工作者在加载时拉出一个通用列表。这会填充客户编号的下拉列表。

private void ZurichAccountTrades_Load(object sender, EventArgs e)
{
   tbLocation.Text = @"C:\Reports\Output\";
   lbGettingData.Visible = true;
   CheckForIllegalCrossThreadCalls = false;
   var thdWorker = new Thread(PopulateDropDownPersonNumbers);
   thdWorker.Start();
}

private void PopulateDropDownPersonNumbers()
{
        ddProviderNo.Enabled = false;

  progressBar1.Increment(10);

  //Get data somehow here....

  foreach (var person in providerPNos)
  {
    ddProviderNo.Items.Add(person.PersonNo);
    progressBar1.Increment(1);
  }
  progressBar1.Increment(100);
  lbGettingData.Visible = false;
  ddProviderNo.Enabled = true;
  progressBar1.Value = 0;
}

private void ddProviderNo_SelectedIndexChanged(object sender, EventArgs e)
{
 //What do I do here??
}

我想要的是当用户选择客户端号码时,会自动显示客户端名称(保存在同一列表中)。

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

添加对象Person而不是PersonNo

  ddProviderNo.Items.Add(person);

然后:

private void ddProviderNo_SelectedIndexChanged(object sender, EventArgs e)
{
    ComboBox comboBox = sender as ComboBox;
    textBox.Text = (comboBox.SelectedItem as Person).Name;
}

答案 1 :(得分:0)

您可以将客户端名称绑定到ComboBox的DisplayName属性。然后当它改变时,你可以使用它..