我尝试了几种不同的方法来实现这一点,但都没有奏效。我需要获取 tabControl1.SelectedTab.Name 的值。如果我尝试以下代码:
string name = tabControl1.SelectedTab.Name;
我得到一个错误,提示我无法从另一个线程访问对象。所以现在我正在尝试使用 Invoke 来检索值。以下是我在网上找到并尝试过的一种方法。
string name = tabControl1.Invoke((MethodInvoker)delegate { Text = tabControl1.SelectedTab.Name; })).ToString();
这给出了错误,未将对象引用设置为对象的实例。我尝试了一些其他方法,但结果为空。
我尝试通过 SO 搜索对此的答案,但找不到任何有效的方法。如果有人能给我指明正确的方向,我将不胜感激。谢谢!
最佳答案
我认为您正在尝试执行以下操作:
string tab = (string)this.Invoke(new Func<string>(() => controlTab1.SelectedTab.Name));
这将从 UI 线程返回 SelectedTab 的名称。问候。
关于c# - 使用 Invoke 从另一个线程获取 tabControl SelectedTab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289188/