Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms VS2017/2017中缺少InvokeRequired属性_Winforms_Invokerequired - Fatal编程技术网

Winforms VS2017/2017中缺少InvokeRequired属性

Winforms VS2017/2017中缺少InvokeRequired属性,winforms,invokerequired,Winforms,Invokerequired,我正在创建一个Windows窗体程序,在VS2017/2019中,无论文本框控件还是窗体本身,intellisense都不会提示InvokeRequired属性 编译时,出现错误:“InvokeRequired”不是编译器生成的Textbox的成员 在对象浏览器中导航时,控件类定义了InvokeRequired属性,TextBoxBase继承控件,然后TextBox继承TextBoxBase。所以TextBox应该有这个属性 有人对这个问题有线索吗 然后,Textbox对象不是Windows.F

我正在创建一个Windows窗体程序,在VS2017/2019中,无论文本框控件还是窗体本身,intellisense都不会提示InvokeRequired属性

编译时,出现错误:“InvokeRequired”不是编译器生成的Textbox的成员

在对象浏览器中导航时,控件类定义了InvokeRequired属性,TextBoxBase继承控件,然后TextBox继承TextBoxBase。所以TextBox应该有这个属性


有人对这个问题有线索吗

然后,
Textbox
对象不是
Windows.Forms.Control
。顺便说一句,缺少可以重现问题的对象声明和(代码+上下文)。Btw2:您不需要
invokererequired
BeginInvoke
容器表单或使用当前的
SynchronizationContext
(考虑到未来,后者可能是更好的解决方案)。Btw3:Visual Studio 2017年还是2019年?您是否同时使用这两个项目?对于一个简单的情况,如果我尝试在非UI线程中更新textbox的内容,运行时将引发一个异常,禁止我修改UI元素,这就是为什么需要InvokeRequired。由于TextBox类继承控件,即使我将TextBox对象强制转换为Control类,InvokeRequired属性也不会显示。这是奇怪的部分。invokererequired不是必需的。这是一种线程安全的方法,用于检查当前代码是否在UI线程以外的线程中执行。您不需要它,因为您可以简单地
BeginInvoke()
UI线程(从另一个线程或从UI线程本身)。如果文本框未公开控件派生属性,则
TextBox
对象不会派生自控件。您没有发布任何与问题相关的代码或可以重现问题的代码,因此没有人知道您实际在做什么。