|
分類:[C#]
初めまして、いろいろと検索をかけましたが、解決に至りませんでしたので質問させて頂きます。
よろしくお願いします。
開発環境:VS2010
別スレッドで作成したDictionary<string,string>のキーだけを、フォームのComboBox.Itemsに追加した後
選択されたキーの値を取得、までしたいのですが
下記のサンプルコードだと取得できませんでした。
汚くて申し訳ございません。
//Thread.cs
class SampleThread
{
public Form1 form;
Thread startThread;
public void start()
{
this.startThread = new Thread(new ThreadStart(this.main));
this.startThread.IsBackground = true;
this.startThread.Start();
}
public void main()
{
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("abc", "123");
data.Add("def", "456");
data.Add("ghi", "789");
this.form = new Form1();
foreach (string key in data.Keys)
{
form.SetComboData(string.Format(key, data[key]));
}
}
}
//form.cs
public partial class Form1 : Form
{
public delegate void ComboControl(string dText);
public ComboControl SetComboData;
public Form1()
{
InitializeComponent();
this.SetComboData = new ComboControl(this.ComboData);
}
public void ComboData(string dText)
{
if (this.InvokeRequired)
{
this.Invoke(SetComboData, dText);
}
else
{
this.comboBox1.Items.Add(dText);
}
}
private void button1_Click(object sender, EventArgs e)
{
SampleThread a = new SampleThread();
a.start();
}
}
|