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

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

问题点描述:   我新建一个线程,并在这个线程,把某个控件去掉或者更改,导致报这个异常 网上解析如下:   “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体...STA 模型意味着可以在任何线程上创建窗口,但窗口一旦创建后就不能切换线程,并且对它所有函数调用都必须在其创建线程上发生。...如果您在控件为大量占用资源任务使用多线程,则用户界面可以在背景线程上执行一个大量占用资源计算同时保持可响应。 用人话描述为:控件是属于主线程(UI线程),不可以跨线程修改其父。...this.Controls.Add(tb); } } 看起来感觉很绕,而且很麻烦,又要新建方法,又要新建委托 所以我把它简化如下:           //使用拉姆达表达式创建一个委托,委托里面修改控件...,委托里面再修改控件 new Thread(() => this.Invoke(delega1)).Start(); }

3K41

Windows桌面软件开发-Win桌面客户端开发神器 第二课

第一课链接:Windows桌面软件开发-Winform桌面客户端开发神器 但是值得一提是,C#基础部分还没有比较熟悉朋友不用气馁。因为前面讲解只是一点小基础。...讲解完毕这么Winform,再来回过头来,详细讲解加强一下基础知识。带你走过C#基础知识这个门槛。所以不用着急。 其中看到朋友评论说,感觉文章内容很简单,也有的说工作几乎不用了。...(1)、更改按钮显示值: 【选中按钮右键】-【属性】---【更改其中Text值】: 如图把现实文字改为了登录: ? 对于所有控件都是通过属性面板来操作。下面不再累赘如何打开属性面板了。 ?...更改样式: 属性DropDownStyle可以设置样式: simple ?...DateTimePicker默认显示日期可以在属性面板Value显示。

9.4K41
您找到你想要的搜索结果了吗?
是的
没有找到

Windows桌面软件开发-Winform桌面客户端开发神器

这是小白学习软件开发系列课程,旨在帮助对电脑编程感兴趣朋友学习并熟悉C#技术。...比如在使用QQ时候,一个图片,一个按钮都是一个控件 在Winform控件主要显示在工具箱里面: ? 登陆界控件: ? 直接拖拽工具箱内容到窗体上就可以了,此时你进行微调,拖拽出来图中效果。...如何改变每个空间显示内容? ? 选中需要修改内容控件 ---【鼠标右键】--打开【属性】面板,修改其中Text值。...这也需要在属性面板设置,选中密码文本框,右键属性打开属性面板:更改一下属性为True 此时这样界面无压力,完美显示: ? ?...实现登录逻辑 在实现登陆逻辑之前,先介绍一下Winform项目所对应文件: 打开解决方案管理器,项目文件基本如下: 对于一个窗体,前期主要对设计面板和窗体处理代码熟悉就可以了。 ?

6.5K10

有小伙伴问:上位机用QT还是winformwpf好?

楔子 群内有小伙伴问:上位机用QT还是winform/wpf好? QT是一个跨平台开发框架,提供了丰富GUI库和工具,可以用于开发各种类型应用程序,包括上位机应用。...另一方,WinForms和WPF是专为Windows平台设计框架,提供了简单易用可视化编辑工具和控件库,适合快速开发传统Windows桌面应用程序。...- .NET生态系统:作为.NET平台一部分,WinForms和WPF可以利用.NET生态系统丰富第三方库、组件和工具,提供更多扩展和功能。...- C#编程:使用C#语言进行开发可以提高开发效率,尤其是对于熟悉C#和.NET开发人员。...结尾 如果想要专业开发、并且需要跨平台个人还是推荐Qt。如果只在windows下运行,并且想要做出漂亮界面吸引客户,快速迭代开发winform/wpf还是不错选择。

38130

有小伙伴问:上位机用QT还是winformwpf好?

楔子 有小伙伴问:上位机用QT还是winform/wpf好? Qt是C++写,跨平台UI框架,Winform/wpf是C#不跨平台Windows上运行UI框架。...甚至于在安卓系统上也可以一展身手,在这个非PC端为唯一现代化工程程式软件上,QT有的优点极为明显。 Winform/wpf呢?这两个不能跨平台,但是优点是也是比较明显,就是开发效率非常快。...QT缺点是开发周期较长,由于其C++特性,虽然进行大幅度封装以及多态继承简化了开发者使用难度。但本质不会变,它上手依然让很多初学者望而生畏。...winform/wpf则简单了很多,其托管代码本质。对于初学者不需要理解底层,就可以开发出比较像样项目出来。 结尾 如果想要专业开发个人还是推荐Qt,如果想要做出漂亮界面吸引客户。...快速迭代开发winform/wpf还是不错选择。

1K30

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

WinForm简介 lWinForm 是 Windows Form 简称,是基于 .NET Framework 平台客户端(PC软件)开发技术,一般使用 C# 编程。...C# WinForm 编程需要创建「Windows窗体应用程序」项目。 l.NET 提供了大量 Windows 风格控件和事件,我们可以直接拿来使用,上手简单,开发快速。...lWindows 窗体应用程序是 C# 语言中一个重要应用,也是 C# 语言最常见应用。这套 C# WinForm 教程将教会大家如何使用 WinForm 开发一个简单应用。...l在 Windows 窗体应用程序右击窗体,在弹出右键菜单 选择“属性”命令,弹出如下图所示属性面板。...最后功能测试已经可以直接输入URL和base64值调用接口返回到界面了,这可以作为一个工具使用,挺方便,以后可以不必每次登陆界输入参数即可调用,希望能给你使用winform调用接口赋能,掌声鼓励一下

3.1K00

WinForm嵌入Web网页解决方案

还有一种非常常见且实用业务场景, Web网页与WinForm程序互相集成应用。   在百度网盘网页,点击【下载】按钮,首先会检查本地是否已经启动客户端网盘。...这就是一个典型Web网页启动客户端程序场景。更形象应用场景是,WinForn/WPF客户端程序嵌入Web程序,Web程序网页js调用WinForm/WPF窗体以及业务方法。...所以,通常所谓浏览器内核也就是浏览器所采用渲染引擎,渲染引擎决定了浏览器如何显示网页内容以及页面的格式信息。...CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#WinForm窗体之间相互通讯与调用。...它是用C#写成,里面有大量C#注释,geckofx是最完美的默认iE核心webbrowse控件替代控件。

4.3K11

【Jmeter篇】后置处理器之正则提取器、Json提取器

5、正则提取(同字段,多个值)案例 提取列表接口所有id集合,使用第几个id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每个id ?...我想提取code参数值: JSON Path Extractor:$.code 提取username参数值: JSON Path Extractor:$.list[0].username 如果提取参数不存在...$.你要提取参数名 提取参数存在 $.你要提取参数名父亲.你要提取参数名 如果提取参数存在 $.你要提取参数名父亲父亲(爷爷).你要提取参数名父亲.你要提取参数名 参数如果是数组...$.你要提取参数参数[N] 以下标的形式取值,0代表取数组第一个值,1代表取是数组第二个值,N代表取数组第N+1个值 3、提取(单个值)登录后获取token,作为请求头参数,用于其它接口请求使用...id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每个id ?

4K30

WPF快速入门系列(1)——WPF布局概览

代码可以实现完全一样效果,但是需要书写更多代码,所以,在平时开发,对于控件布局,一般采用XAML方式,C#代码一般用于在运行时加载某个控件到界面实现。...下图显示了如何对这些按钮进行换行以适应WrapPanel面板的当前尺寸,WrapPanel面板的当前尺寸由包含它窗口尺寸决定。...3.5 DockPanel 布局控件   DockPanel面板定义一个区域,在此区域中,你可以使子元素通过锚点形式进行排列。DockPanel类似于WinFormDock属性功能。...对于在DockPanel元素停靠可以通过Panel.Dock附加属性来设置,如果设置LastChildFill属性为true,则最后一个元素将填充剩余所有空间。   ...,控件会先给子控件提供可用大小(MeasureOverrideavailableSize参数),子控件再反馈给控件一个自己期望值(DesiredSize),控件最后根据自己所拥有的空间大小与子控件期望值分配一定空间给子控件并返回自己大小

2.1K20

UniPro-Kanban 上线:让研发管理更“透明”

随着敏捷开发流行和广泛应用,如何能让团队真正“敏捷”起来,而不是流于形式,也是团队管理者需要重视问题,下面这几个场景是否似曾相识:“站会时间越来越长,看不到效率也没效果;用户需求不知如何拆分,需求管理则是另一个难题...团队协作无法回避沟通同步,信息对称问题,在敏捷开发中一样存在,但是敏捷开发引入一项简单工具—看板,让冗杂任务有了归纳和整理可能。...看板不是IT业界首创,它起源于制造业,汽车巨头丰田将这块板子发挥到极致,到了敏捷开发领域,更是没有严格程序,也没有严格方法来实现和使用看板。...除此之外,UniPro-Kanban也有更多功能:· 贴合国内用户管理习惯,在父子工作项设计,子工作项能被随时展开和折叠,方便对工作项一目了然。...· 支持按任务类型查看看板栏,可快速筛选看板内容,用于筛选属性包括:经办人、报告人、优先、工作项ID、等,以适配更多需求场景,还可添加且或条件。图片

35250

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

5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...但是在企业应用软件业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主窗体,设置窗体(WinForm、WPF、WinUI、Win32)控件等。...下面通过一个Demo来讲解如何实现JS调用C#方法。 业务场景:JS调用C#方法,传递三个参数,分别是num1、num2、message。...步骤4 网页定义一个测试按钮,并设置点击事件 点击事件,第43行获取主机对象,customWebView2HostObject 与 C#定义名称需要完全相同。

2.3K40

DotNET介绍_dotnet 6

New文件夹 CD D:\360\ 进入D盘下面的360文件夹 CD… 返回到当前文件夹上层文件夹 CD\ 返回根目录 Del *txt: 删除当前目录下面所有的后缀名为txt文件 CLS 清除控制台窗口...,是项目的一个集合 App.config:项目的配置文件 Form1.cs文件:winform框架C#代码文件 Form1.Designer.cs文件:Winform框架图形化界面代码文件 bin文件夹...事件如何理解 十九、属性赋值 this关键字指当前对象 掌握代码书写规范:属性赋值代码必须写在行为,以主谓宾形式写 private void Form1_Load(object sender...,然后方法参数按照属性赋值方式进行赋值即可 二十五、Winform基本属性 5.1基本属性 对象尺寸大小Size属性、Width宽度、Height高度 对象位置Location属性、Left左距离...、Top上距离、 Right右距离(只读)、Bottom下距离(只读) 坐标系:全部基于对象容器做为其坐标系,X轴向右增大,Y轴向下增大 对象坐标指的是所有的对象左上角点位置坐标 二十六、窗口抖动案例

1.7K30

.NET混合开发解决方案24 WebView2对比CefSharp超强优势

5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适WebView2运行时 .NET混合开发解决方案7 WinForm程序通过NuGet管理器引用集成WebView2...控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...控件导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法 .NET混合开发解决方案11 网页JS调用C#方法 .NET混合开发解决方案12 网页JS调用C#方法访问WinForm...我为什么会写这么多篇博客来记录WebView2使用历程,主要是在开发《建筑工程施工图BIM智能审查系统》过程,勘察设计单位端与审查专家端(C/S架构 WinForm程序集成了Web端BIMFace...在建筑工程施工图BIM智能审查应用场景,BIM模型相对CAD、PDF来说,模型尺寸呈几何增长,超大模型甚至达到10G,构件数量达到万、三角片面数量达到百万甚至千万

2.9K20

一个32岁入门70后程序员给我启示

这是一块移植了UCOSII系统STM32实验板 这块板嵌入了UCOSII系统,可同时执行多个任务,并可指定任务优先。通俗地说,你可以边听音乐边打字。虽然看起来很低级,但是嵌入式就是这样。...很高端吧,但是我一问我爸,你是怎么做出来这块板,你真的这么厉害用C语言写了一个操作系统? 板子是自己画,其他芯片都是买,CPU程序是自己写进去。...这是它给我提供串口应答式发送流程(可能有错) 我把我爸逼成了伪全栈 大二时候我,学了C#,会做一下简单winform程序,然后就开始飘飘然了,跟我爸吹牛了,当时我爸高兴坏了,直接就给我接了一个真实项目...而实际上,书本教会是我们写字(编程)姿势(方法),教会我们如何拿笔(写程序),如何写好字(好程序),一旦你学会了就能够写出一手好字(好程序)。...虽然,我跟我父亲没有太多语言交流,但是这么多年耳濡目染,足以让我发出:“谨遵训,不忘初心”。

58490

.NET 开源免费图表组件库,Winform,WPF 通用

图表接入 ⚡ Winform 1.通过Nuget安装 ScottPlot.WinForms。2.安装完成后, 就可以在工具箱找到 ScottPlot 组件, 然后拖到 Winform 窗体上。...Plot.AddScatter(dataX, dataY); formsPlot1.Refresh(); ⚡ WPF 1.通过Nuget安装 ScottPlot.WPF2.添加一个 WpfPlot 组件到布局,...像很多科学家一样, Scott 也使用 Python 流行 matplotlib 处理数据, 但是发现在给一些不太懂计算机用户安装软件时, 总会出现一些环境问题, 配置问题等等, 所以他在2017...但是问题来了, 当他尝试用 C# 绘制 WAV 文件数据时,发现非常困难, Python 微不足道任务在 C# 似乎非常困难, 虽然有免费图表库, 但是当加载了千万数据时就开始有各种问题了..., 这就是 ScottPlot 初版, 然后就开源在了github, 经过几年逐步更新迭代, ScottPlot 变成了一个功能丰富, 成熟稳定图表组件库。

1.6K20

C#开发BIMFACE系列52 CS客户端集成BIMFACE应用技术方案

在我博客《C#开发BIMFACE系列49 Web网页集成BIMFACE应用技术方案》、《C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸》、《C#开发BIMFACE系列...下面是审图系统实际应用案例   WinForm程序中集成网页基本原理就是通过一个包含类似浏览器功能控件,将Web网页载入并解析渲染出来。...所以,通常所谓浏览器内核也就是浏览器所采用渲染引擎,渲染引擎决定了浏览器如何显示网页内容以及页面的格式信息。...http://mybrowse.osfipin.com WinForm Browser 控件 WebBrowser    微软WinForm开发框架老牌控件。...当控件Dock属性设置为 Fill,客户端电脑缩放与布局不是100%时,窗体呈现黑边(严重bug),并没有完全填充容器。

4.5K10

C# 也可以连接和操作Access数据库

这里写一下总结一下,希望可以帮助对C#操作Access数据库,有需求朋友。 当然文章有什么问题,请及时指正。一起交流探讨。...连接AccessDemo 数据库创建成功,下面以Winform为例做链接Access数据库操作: 创建Winform项目,并添加DataGridView控件用以显示数据 ?...读取Access并显示到界面: 为了方便对数据库数据操作,利用面向对象思想,创建数据库对应Model类: 执行ExecuteDataReader方法,获取所有数据显示到DataGridView: ?...下面再介绍一个数据源配置方式: 数据源配置 首先需要进行数据源配置: 【控制面板】-【小图标显示】-【管理工具】-【数据源(ODBC)】-【系统DSN】-【添加】 发现并没有Access所对应数据源选项...小编使用是Win7 64位系统进行测试,管理工具中所列出来是64位配置源。在32位系统应该会显示。 在64位系统,是包含64位和32位两个数据源程序

3.8K20

UniPro近期升级功能盘点:兼顾灵活性与易用性

作为软件设计者,如何平衡易用性和灵活性是一个无法回避问题,作为吸引用户使用来说,易用性是首要考虑问题,界面简洁,流程清晰,才能对用户友好,最大限度降低迁移成本;而灵活性,是在用户使用软件针对自身业务需求...图片一键梳理待办事项要开启一天工作,只需自动登录系统,在界面的左边栏,可快速定位敏捷面板迭代看板、甘特图、工作项、里程碑、迭代等独立模块。...传统项目管理软件,任务与子任务捆绑关系“稳定”,同时也带来了不便,例如,上一个迭代A任务有50个子任务,但只完成了20个,这个任务只能全部进入下一个迭代B,在迭代B所有员工打开这个任务时...,已完成子任务都会显示出来,很难一眼识别出需要在迭代B完成子任务,基于此痛点,UniPro利用低代码灵活易用思想,研发出移动任务功能,将迭代A未完成30个子任务打包移动给新任务,子任务和新任务实现捆绑...,同时移动进入到新迭代B,团队成员在管理任务过程,方便查看和管理。

25040

干货分享:详解线程开始和创建

Console.WriteLine("b"); }).Start(); 你也可以简单C# 2.0里那样使用匿名方法做同样事: new Thread(delegate() { Console.WriteLine...0; i < 10; i++) { int temp = i; new Thread(() => Console.Write(temp)).Start(); } 变量temp在每个循环迭代位于不同内存块...五、线程优先 一个线程优先决定了在操作系统它可以得到多少相对其他线程执行时间,下面是线程优先等级: // Summary: // Specifies the scheduling...一个理想解决方案是让实时线程和用户界面用不同优先运行在不同进程,通过远程和内存映射文件来通信。即使提高了进程优先,在托管环境处理硬实时系统需求还是对适用性有限制。...catch (Exception ex) { Console.WriteLine(ex.Message); } } } 你需要在应用程序所有线程入口方法添加一个

60160
领券