我想使用線程,幷包括一個GUI控制器,所以我需要調用該控制器,但我有這個問題 - 我不能調用這部分代碼中的非委託類型不能調用非委託類型
if (toolStripTextBox1.Text != "")
{
if (RT[j].tabvalue.ToString() == tabControl1.Invoke(() =>
{ tabControl1.SelectedTab.Name; }))
{
RT[j].RitchT.Text = getH.getHtmlCode(toolStripTextBox1.Text);
}
}
,而這是工作,另一方面
tabControl1.Invoke(
() => { tabControl1.TabPages[R.RitchT.Name].Controls.Add(R.RitchT);
});
這是調用類
public static class ControlExtensions
{
public static void Invoke(this Control control, Action action)
{
if (control.InvokeRequired)
control.Invoke(new MethodInvoker(action), null);
else
action.Invoke();
}
}
我該如何解決這個問題?
你想通過這一行來實現 - 「tabControl1.SelectedTab.Name」? –
只是返回該選項卡名稱並使用它來檢查if語句中的某些內容 –
這不會編譯。您應該使用Hans Passant在他的回答中指定的'Func'。 –