1

こんにちは、スレッドに以下のコードを使用したいと思います。呼び出しのサンプルコードがいくつかありますが、コンボボックスで選択した項目が文字列になると、その方法がわかりません。

これは私が持っているものです:

//My code
string cb1 = comboBox1.Items[comboBox1.SelectedIndex].ToString();

//Example 1
textBox2.Invoke((Action)(() => textBox2.Text = ""));

//Example 2
textbox2.Invoke((MethodInvoker)(delegate()
{
    //do something
}));
4

2 に答える 2

5

(デリゲートの代わりにデリゲートExample 1を使用して)一緒に行きたい場合は、これを試してください。Func<string>Action

string cb1 = comboBox1.Invoke((Func<string>) (() => comboBox1.Items[comboBox1.SelectedIndex].ToString())) as string;
于 2012-04-17T17:38:49.040 に答える
2
string newValue = "hi there";

if (textBox.InvokeRequired)
    textBox.Invoke((MethodInvoker)delegate { textBox.Text = newValue; });
else
    textBox.Text = newValue;

問題の特定のコードについては、次のように行うことができます

MethodInvoker mi = delegate
{
     string cb1 = comboBox1.Items[comboBox1.SelectedIndex].ToString();
};
if (InvokeRequired)
   this.BeginInvoke(mi);
else
   mi.Invoke();
于 2012-04-17T16:49:17.227 に答える