首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#报错——(Winform) 在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

问题点描述:   我新建一个线程,并在这个线程中,把某个控件的父级去掉或者更改,导致报这个异常 网上的解析如下:   “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体...”基于本机 Win32 窗口,而 Win32 窗口从本质上而言是单元线程。...除了 Windows 窗体之外,.NET Framework 中的类使用自由线程模型。有关 .NET Framework 中的线程的信息,请参见线程处理。...STA 模型要求需从控件的非创建线程调用的控件上的任何方法必须被封送到(在其上执行)该控件的创建线程。...如果您在控件中为大量占用资源的任务使用多线程,则用户界面可以在背景线程上执行一个大量占用资源的计算的同时保持可响应。 用人话描述为:控件是属于主线程(UI线程),不可以跨线程修改其父级。

3.5K41

在iOS中怎样创建可展开的Table View?(上)

在这一点上,我们通常会在我们的工程中创建一个新的plist文件,然后我们将开始填充合适的数据.当然你也可以不这么做,你可以下载.plist文件.所以,下载它并把它添加到起始项目里去吧.设置所有cell的属性需要大量的空间...现在是最好花费你时间的时候了,更彻底地看这些属性以及所有那些我们将要显示在tableView上cell的值.在我们处理所需的代码时候,通过cell描述很容易理解,我们需要为创建并且管理可扩展的cell所写的已经明显变少了...首先,打开工程中的ViewController.swift文件然后在类声明的顶部加入如下属性: var cellDescriptors: NSMutableArray!...显示cell 了解了每次app运行的时候cell描述符都会被加载,我们继续吧,在tableView上显示cell.这部分我们会开始创建另一个新的函数,这个函数将会从cellDescriptors数组定位和返回合适的...我们又创建了一个有用的工具,接下来它将会变得非常方便,所以让我们来修改ViewController类中已存在的tableView方法吧.首先,让我们指定tableView的组数: func numberOfSectionsInTableView

1.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C#上位机开发(二)—— Hello,World

    框架是指.net框架,4以及4以下的.NET框架可以在xp上运行,4以上可以在win7/8/10上运行,鉴于当前大多数操作系统都是win7或win10,选择4.5版本。...,比如在这个工程中定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象,名为Form; 方法:前面已经说过,在面向对象编程中是没有变量和函数的,所有的函数都被封装在类中,属于对象的方法...,最基本的是类的构造方法,该方法与类名同名,在用类创建一个具体对象时自动调用,不可缺少,比如Form1( );另外一种是自己定义的用户方法,比如该类中的Form1_Load()方法,就是在初始化窗口时,...也是如此,在Program.cs文件中定义了Program类,该类中拥有主函数main( ), 在main函数中,第三行代码是一切的开始,调用Form1类的构造函数,创建一个Form对象,一切由此开始,...按钮,添加文本框清空代码,完整代码如下: //用户项目工程自定义命名空间HelloWorld namespace HelloWorld { //定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象

    2K41

    上位机开发二----第一个程序hallo world

    框架是指.net框架,4以及4以下的.NET框架可以在xp上运行,4以上可以在win7/8/10上运行,鉴于当前大多数操作系统都是win7或win10,选择4.5版本。...,比如在这个工程中定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象,名为Form; 方法:前面已经说过,在面向对象编程中是没有变量和函数的,所有的函数都被封装在类中,属于对象的方法...,最基本的是类的构造方法,该方法与类名同名,在用类创建一个具体对象时自动调用,不可缺少,比如Form1( );另外一种是自己定义的用户方法,比如该类中的Form1_Load()方法,就是在初始化窗口时,...也是如此,在Program.cs文件中定义了Program类,该类中拥有主函数main( ), 在main函数中,第三行代码是一切的开始,调用Form1类的构造函数,创建一个Form对象,一切由此开始,...按钮,添加文本框清空代码,完整代码如下: //用户项目工程自定义命名空间HelloWorld namespace HelloWorld { //定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象

    82842

    C#复习题 填空题

    为打开文件“C:\Winnt\Win.txt”进行读写操作,首先应该创建 File    类的实例。...为打开文件“C:\Winnt\Win.txt”进行读写操作,首先应该创建 File    类的实例。 在NET中,用来与数据源建立连接的对象是 Connection对象     。...添加到窗体的每个组件,如Button、TextBox等,都称为 控件         。 在C#中,将文本框TextBox1清空,可用语句表示为  Items.Clear();   。...C#中用关键字 class     创建类,使用关键字   new  创建类的对象并调用构造函数。 在数据类型中,浮点型包括单精度和___双精度Double  两种。...在C#标准控件中,有文本框和列表框组合在一起形成的控件称为 组合框ComboBox  。

    4K10

    【C++】构造函数分类 ② ( 在不同的内存中创建类的实例对象 | 栈内存中创建实例对象 | new 关键字创建对象 )

    一、在不同的内存中创建类的实例对象 1、栈内存中创建实例对象 在上一篇博客 【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用...栈内存中的 变量 Student s1 ; 这些都是在 栈内存 中创建 类的实例对象 的情况 ; // 调用无参构造函数 Student s1; // 打印 Student s1 实例对象值...Student(s2); // 打印 Student s3 实例对象值 cout << "name : " << s3.m_name << " , age : " << s3.m_age << endl; 在栈内存上创建的对象..., 不需要手动销毁 , 在函数的生命周期结束的时候 , 会自动将栈内存中的实例对象销毁 ; 栈内存中 调用 构造函数 创建的 实例对象 , 不需要关注其内存占用 ; 2、堆内存中创建实例对象 在 栈内存..., 栈内存中只占 4 字节的指针变量大小 ; Student* s2; 在 C++ 语言中 , 可以使用 new 关键字 , 调用有参构造函数 , 创建类的 实例对象 ; 在下面的 C++ 代码中 ,

    18820

    WPF自学入门(八)WPF窗体之间的交互

    今天我们一起来看一下WPF窗体之间的交互-窗体之间的传值。有两个窗体,一个是父窗体,一个是子窗体。要将父窗体的文本框中的值传递给子窗体中的控件。我们该怎么实现?...接下来我们一起来实现窗体之间的传值,在父窗体上我们放两个控件,一个文本框TxtMessage,另一个是按钮BtnSend.子窗体上放一个文本框TxtInput。 父窗体的界面: ?...子窗体的界面: ? 要实现传值,我们首先要在子窗体中定义一个可读可写的公用的字符串:getMessage。然后在父窗体中按下按钮的时候,定义一个字符串Message,用来存放输入框的文字。...这里我进行假设一个场景,依然还是有父子窗体,子窗体是父窗体中一个按钮的属性设置器,在子窗体中添上要设置属性的值,然后按设置完成,子窗体关闭,父窗体的相应按钮的属性也根据子窗体中的设置值而改变!...其实这里只是实现这个场景的一种方法,也是比较简单的方法,用到的知识是C#中的委托。这里演示一个最简单的例子: 下面看一下具体实现 在上一个例子中的子窗体新增一个按钮返回BtnReturn。

    2.5K10

    C# 在自定义的控制台输出重定向类中整合调用方信息

    C# 在自定义的控制台输出重定向类中整合调用方信息 目录 C# 在自定义的控制台输出重定向类中整合调用方信息 一、前言 二、输出重定向基础版 三、输出重定向进阶版(传递调用方信息) 四、后记及资源 独立观察员...2021 年 1 月 6 日 一、前言 众所周知,在 .NET 的控制台应用程序(就是那种小黑框程序)中输出信息,使用的是控制台输出方法 Console.Write ("消息") 或 Console.WriteLine...而在 Winform、WPF、网页程序中,使用这种方法输出的信息是没有地方显示的,在这些程序中,我们一般把信息输出到相应的显示控件中,或者写入日志中。...来进行输出,而 ShowInfo 方法内通过设置文本框的文本内容来达到了显示消息的效果: 其中的关键就是自定义类 ConsoleWriter(后面有新版): using System; using...Write 方法,然后在重写的 Write 方法中调用外部设置好的(通过构造函数)相关委托方法进行实际的信息输出。

    1.6K20

    C#问题攻克之使用winform调用人脸识别接口

    C# WinForm 编程需要创建「Windows窗体应用程序」项目。 l.NET 提供了大量 Windows 风格的控件和事件,我们可以直接拿来使用,上手简单,开发快速。...Windows 窗体应用程序 在 Windows 窗体应用程序中每个窗体都是由若干个控件构成的。 所谓控件就是人们常说的能输入文本的位置、能选择的位置、能单击的位置、图片显示的位置等。...其中: l能输入文本的位置对应于 Windows 窗体应用程序中的文本框、多行文本框等。 l能选择的位置对应于 Windows 窗体应用程序中的复选框、单选按钮、下拉列表框。...l在 Windows 窗体应用程序中右击窗体,在弹出的右键菜单中 选择“属性”命令,弹出如下图所示的属性面板。...文本框简介 文本框 (TextBox) 是在窗体中输入信息时最常用的控件,通过设置文本框属性可以实现多行文本框、密码框等。 我们可以根据下方的属性名查看相应的属性的作用。

    3.2K00

    结合使用 C# 和 Blazor 进行全栈开发

    在浏览器中运行的 Blazor Web 应用程序可以与 C# 后端服务器共享代码。可以将逻辑放入共享库中,并在前端和后端使用它。这会带来很多好处。...在“新建项目”对话框中,依次单击“ASP.NET Core Web 应用程序”和“确定”,再选择图 1 所示对话框中的“Blazor”图标。单击“确定”。这会创建默认的 Blazor 示例应用程序。...共享库包含模型类和非常简单的验证引擎。模型类保留注册窗体中的数据字段。...我不是在提倡创建你自己的验证引擎;只是有很多选择。此验证引擎既要足够好,以便演示实际示例;又要足够简单,以适应本文且易于理解。 创建规则 此时,有包含窗体字段的 RegistrationData 类。...下一步是在服务器上使用共享库和验证引擎。为此,我先向解决方案添加另一个 ASP.NET Core Web 应用程序项目。

    6.7K40

    WinForm学习

    此外还提供了命名空间来管理 C# 文件,命名空间 相当于一个文件夹,在创建程序时,允许在一个命名空间中创建一个或多个类,方便调用和重用 面向对象 与其他面向对象语言一样,C# 语言也具有面向对象语言的基本特征...封装:就是将代码看作一个整体,例如使用类、方法、接口等。在使用定义好的类、 方法、接口等对象时不必考虑其细节,只需要知道其对象名以及所需要的参数即可,也是一种提升代码安全性的方法。...C# 6.0 版本已经能在多个操作系统上使用,例如在 Mac、Linux 等。...5)numericUpdown 数字显示框,点击向上或者向下来增加或减少数字的显示 6)RichTextBox ‘富文本框’ 7)MenuStrip 窗体上添加菜单栏控件 MenuStrip...可以通过属性中的Click指定不同按钮的相同事件 11)容器 在容器中可以放入需要的组件 12)属性 Anchor属性可以将内部容器窗体的拉伸大小随外部窗体的改变而改变

    3.4K11

    使用C#开发数据库应用程序

    } } } c.认识窗体文件 (1)partial关键字 partial是部分的意思,这是.NET Framework2.0引入的一个新特性-分布类 在C#中,为了方便代码的管理和编辑...b.使用基本控件 (1)标签【Lable】 属性:Image将在标签上显示的图像 Text在标签上显示的文本 (2)文本框(TextBox) 属性 MaxLenth 指定可以在文本框中输入的最大字符数...Multiline 表示是否可以在文本框中输入多行文本 PasswordChar 指示在作为密码框时,文本框中显示的字符,而不是实际输入的文本 ReadOnly 指定是否允许编辑文本框中的文本...} } } c.实现窗体间的跳转 (1)创建窗体对象 被调用的窗体类 窗体对象名=new 被调用的窗体类; (2)显示窗体 窗体对象名.Show(); 例如:...ImageScalingSize 工具条或状态条中的项显示的图像的大小 Items 在工具条或状态条上显示项的集合 工具条或状态条上的按钮和标签的主要属性和事件 属性 DisplayStyle

    5.9K30

    C#记事本项目开发,一个可以实现批量操作的记事本!【附源码】

    C#的记事本开发需要我们定义两个窗体,也就是一个承载所有记事本的父窗体,一个具有记事本基本功能的子窗体。 . 记事本子窗体 所以我们首先来聊一下具有记事本基本功能的子窗体的开发。...在C#的窗体应用中,我们可以直接对界面进行控件布局,不需要使用代码定义控件,在这一点上C#的窗体应用开发是很不错的。...那么在记事本应用中,我们应该添加在窗体中的控件应该有,文件的新建、打开、保存,以及字体的样式、字号、是否加粗倾斜这些基本的记事本控件。同时当然还需要记事本的编辑文本框,方便我们对内容的修改和输入。...= new Font(fontname, fontsize); } 在字号发生变化时,我们需要将文本框中的内容的字号进行改变,这个时候就需要我们在相应的函数中进行设置: //当字号发生改变时...主控页面父窗体 接下来就是承载记事本编辑窗口的父窗体了。 在父窗体中需要包括的控件有记事本的新建、关闭、全部关闭、退出等。

    2K10

    C#之二十 Win Form对话框

    创建一窗体,将窗体布置如下图样子(字体对话框是组件在工具箱的对话框项中,将它拖入窗体后不显示在窗体中): 使用控件列表 控件标识 说明 btnOpenFontDialog 打开字体对话框按钮 txtFont...一、 创建一窗体,将窗体布置如下图样子(颜色对话框是组件在工具箱的对话框项中,将它拖入窗体后不显示在窗体中): 使用控件列表 控件标识 说明 btnOpenColorDialog 打开颜色对话框按钮...一、 创建一窗体,将窗体布置如下图样子(打开文件对话框是组件在工具箱的对话框项中,将它拖入窗体后不显示在窗体中): 使用控件列表 控件标识 说明 btnOpenFileDialog 打开“打开文件对话框...一、 创建一窗体,将窗体布置如下图样子(浏览文件夹对话框是组件在工具箱的对话框项中,将它拖入窗体后不显示在窗体中): 使用控件列表 控件标识 说明 btnFolderBrowserDialog...一、 创建一窗体,将窗体布置如下图样子(保存文件对话框是组件在工具箱的对话框项中,将它拖入窗体后不显示在窗体中): 使用控件列表 控件标识 说明 btnSaveFileDialog 打开“保存文件对话框

    6000

    WPF 弹出 popup 里面的 TextBox 无法输入汉字 修复在 Popup 输入法不跟随在 WinForms 弹出的 WPF 的 TextBox 无法输入问题

    古老的输入法就是通过判断获得焦点的句柄是支持输入和判断他需要什么输入,如果在 win7 的搜狗,就是这样判断,于是搜狗很难在 Popup 的 TextBox 输入文字。...InputMethod.SetIsInputMethodSuspended 和这个类的其他属性都可以设置输入法,请尝试修改他的值。...问了我一个问题,为什么 WinForms 弹出的 WPF 的文本框无法输入数字,但是可以输入其他的内容 一开始我认为的是绑定的问题,如果一个控件绑定了另一个控件,或者有后台代码绑定,有另一个控件绑定了输入框都有方法让用户输入的数字不显示...如果是我在调试,我会先拿到 TextChanged 事件,看是不显示还是没有接收到输入 另外需要判断当前的焦点是否在 TextBox 上 按照这个方法会发现有焦点,但是没有 TextChanged 收到输入...- 唐宋元明清2188 - 博客园 解决Winform中弹出WPF窗体不能在文本框中输入的问题 - 飞鹰的专栏 - CSDN博客 Windows 窗体和 WPF 互操作性输入 - 小而美 - CSDN

    2.5K20

    初识Windows程序

    window 操作系统中,处处是窗体 简单 强大 方便 灵活 步骤 新建项目  项目类型 visual C#项目 模板 window应用程序 用partial 将同一个窗体的代码分开放在两个文件中: 一个存放在...vs自动生成的代码中 冒号表示继承 像孩子继承父母的特征所有窗体都继承Form 窗体标题 : Name 窗体图标: Icon 图片背景Backgroundimage 背景颜色 backcolor 最大化按钮...命名规范-前缀 控件名称   控件类名   命名前缀 标签   Label   lal 文本框   TextBox   txt 组合框   ComboBox  Cbo 按钮   Button   btn...:文本的对齐方式 Windows应用程序是事件驱动 事件驱动:随时响应用户触发的事件,做出相应的处理 我们需要做的 针对相关事件,编写相应的事件处理程序 编写事件处理程序的步骤 选中控件  在属性窗口中单击...显示消息 向用户请求消息 实现步骤 1定义窗体对象 2显示窗体 语法 被调用的窗体类名 窗体对象=new被调用的窗体类名(); 窗体对象.Show();

    4.3K40

    .NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

    但是在企业级应用软件中业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主的窗体,设置窗体(WinForm、WPF、WinUI、Win32)中的控件等。...C#接收到参数后,调用WinFrom窗体中定义的方法,将num1与num2作为参数传入,并将计算结果显示在窗体控件上。 先看一下示例效果 下面详细介绍其实现步骤。...步骤1 1、在Frm4JSCallWinForm窗体上添加一个label,用于显示计算结果,默认值为0,且颜色为黑色。  ...窗体中的 SetResultFromWeb() 方法 在普通的类中如访问一个窗体有两种方式 第一种是使用窗体类来实例化一个对象 Frm4JSCallWinForm form = new Frm4JSCallWinForm...窗体已经运行,说明已经实例化了,如果采用第一种方式,那么新创建的对象与正在运行的窗体对象不是同一个对象,即使访问到窗体中定义的方法也无法更新当前窗体上的控件属性。所以必须采用第二种方式。

    2.5K40

    C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行通讯...02 创建事件 这里我们创建一个公共接口类PersonInfoEven并继承自PubSubEvent,并传入一个PersonInfo对象 public class PersonInfo {...(list、Dictionary) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面...C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号的使用...C# 无意间写了一段线程死锁的代码 C# 看懂这100+行代码,你就真正入门了(经典) C# WPF项目实战(经典) WPF 如何修改button圆角(经典) WPF XAML 为项目设置全局样式

    1.9K10
    领券