我已经尝试了几种不同的方法来实现这一点,但它们都没有工作。我需要获得 tabControl1.SelectedTab.Name 的值。如果我尝试以下代码:
string name = tabControl1.SelectedTab.Name;
我收到错误,我无法从另一个线程访问对象。所以现在我尝试使用Invoke来检索值。我在网上找到并尝试过的方法之一如下。
string name = tabControl1.Invoke((MethodInvoker)delegate { Text = tabControl1.SelectedTab.Name; })).ToString();
这给出了错误,对象引用未设置为对象的实例。我尝试了其他一些方法,但这些方法导致了null结果。
我试图通过搜索SO来寻找答案,但找不到任何有效的方法。如果有人能指出我正确的方向,我将不胜感激。谢谢!
答案 0 :(得分:2)
我认为您正在尝试执行以下操作:
string tab = (string)this.Invoke(new Func<string>(() => controlTab1.SelectedTab.Name));
这将从UI线程返回SelectedTab的名称。问候。