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

C#:交换winform控件的正确方法是什么?

C#中交换winform控件的正确方法是通过创建一个空的控件数组,然后将控件的位置和大小调整到目标位置和大小,最后将控件数组重新赋值给控件。具体步骤如下:

  1. 创建一个空的控件数组,用于存储待交换的控件。
  2. 获取要交换的控件的位置和大小,记为控件A和控件B。
  3. 创建一个空的Bitmap,用于存储交换后的控件图像。
  4. 使用Graphics对象绘制交换后的控件图像到Bitmap中。
  5. 调整控件A和控件B的位置和大小,使其符合目标位置和大小。
  6. 将控件A和控件B的位置和大小调整到目标位置和大小后,将控件数组重新赋值给控件。
  7. 释放Bitmap对象。

注意,在交换控件时,需要保证其他控件的位置和大小不受影响,同时也需要保证线程安全。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# 如何给Winformbutton等控件添加快捷键 By HKL,

第一种:Alt + *(按钮快捷键) 在大家给button、label、menuStrip等控件设置Text属性时在名字后边加&键名就可以了, 比如button1.text= "确定(&O)"。...第二种:Ctrl+*及其他组合键 在WinForm中设置要使用组合键窗体KeyPreview(向窗体注册键盘事件)属性为True; 然后使用窗体KeyDown事件(在首次按下某个键时发生)....} } 注: 1、***代表窗体名称,大家可以看一下 ”Keys”枚举参数,以实现自己需要 2、还有一个问题,当使用Ctrl + 快捷键时,对于焦点在可写控件(如...给contextMenuStrip1添加一个item,然后为它设置快捷键(就是你想加在button上快捷键),并且将它Visible属性设为false。这样,button1快捷键设置成功。...例如:窗口FormTestLink(keydown事件)回车快捷键添加 private void FormTestLink_KeyDown(object sender, KeyEventArgs e

2.2K20

WinForm学习

文章目录 一、C#是什么?...二、C#特点 三、了解C#、.NET、Winform关系 四、快速创建Winform程序 五、Winform菜单和工具栏 六、Form初始化、布局 总结 一、C#是什么?...封装:就是将代码看作一个整体,例如使用类、方法、接口等。在使用定义好类、 方法、接口等对象时不必考虑其细节,只需要知道其对象名以及所需要参数即可,也是一种提升代码安全性方法。...C# WinForm 编程需要创建「Windows窗体应用程序」项目。.NET 提供了大量 Windows 风格控件和事件,我们可以直接拿来使用,上手简单,开发快速。...六、Form初始化、布局 1.form初始化操作时是先执行构造方法InitializeComponent(),然后执行load(),包括实例化——属性设置——事件注册——将控件添加到当前窗体Controls

3.3K11

.NET混合开发解决方案11 WebView2加载网页中JS调用C#方法

控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...控件导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法   在我博客《.NET混合开发解决方案10 WebView2控件调用网页JS方法》中介绍了C#调用网页中定义JavaScript...方法以执行某种业务逻辑,同样WebView2控件中加载网页中自定义JavaScript方法中也可以调用C#方法。   ...WebView2控件通过将对象传递到Web网页,使应用程序能够弥合web和本机应用程序(客户端程序:WinForm、WPF、WinUI、Win32)之间鸿沟。...使用主机对象调用C#方法,由于调用过程是异步,所以需要使用 await,方法定义前需要加上 async。 以上三步完成后即实现了JS访问C#方法

10.6K10

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

第一课链接:Windows桌面软件开发-Winform桌面客户端开发神器 但是值得一提是,C#基础部分还没有比较熟悉朋友不用气馁。因为前面讲解只是一点小基础。...下面预告一下将要写文章: C#基础(已完成) Winform Wpf 基础加强 网页前端(包括html、css、JavaScript、JQuery) 数据库 三层架构 Asp.Net Asp.Net...常用Winform控件 昨天讲解了进行登录程序开发,如下图: ? 主要使用了三个控件:分别是Button(按钮)、TextBox(文本框)、Label(文本标签) ?...下面介绍更多常用一些控件: 这里我创建了一个新项目: 新建Winform项目 【打开】--【新建】---【项目】-----选择Winform窗口应用程序,直接进行创建就可以了。...控件使用 按钮 直接拖拽工具箱内Button控件Winform 窗体: 下面的控件都是使用这个方式进行添加不再累赘。 ?

9.4K41

C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用

可以在C#或VB或任何其他CLR语言中使用。CefSharp同时提供WPF和WinForms Web浏览器控件实现。...工具箱中也增加了CefSharp控件 步骤3 编译项目 编译 BIMFace.SDK.CSharp.Sample.WinForm 项目,生成如下内容 与 CefSharp 相关共计32个文件,2个目录...按钮对应js方法 1 // js 调用 C# 方法 2 function callCharpMethod() { 3 // 特别提醒:C# 类中定义方法名称采用 Pascal 命名。...网页中调用时候必须将方法名称第一个字母改为小写。否则调用不成功。 调用C#方法。...定义一个单独类,用于在CefSahrp组件加载网页之前,将其注入到网页中 (4)WinForm窗体中点击【 C# 调用 JS 方法】按钮。

2.4K40

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

控件 .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...控件导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法 .NET混合开发解决方案11 网页JS调用C#方法   在前一篇博客《.NET混合开发解决方案11 网页JS调用C...#方法》中介绍了JS访问C#方法简单实现方式。...但是在企业级应用软件中业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主窗体,设置窗体(WinForm、WPF、WinUI、Win32)中控件等。...C#接收到参数后,调用WinFrom窗体中定义方法,将num1与num2作为参数传入,并将计算结果显示在窗体控件上。 先看一下示例效果 下面详细介绍其实现步骤。

2.3K40

C#invoke方法

在用.NET Framework框架WinForm构建GUI程序界面时,如果要在控件事件响应函数中改变控件状态,例如:某个按钮上文本原先叫“打开”,单击之后按钮上文本显示“关闭”,初学者往往会想当然地这么写...正确写法是在控件响应函数中调用控件Invoke方法(其实如果大家以前用过C++ Builder的话,也会找到类似Invoke那样激活到主线程函数)。...Invoke方法会顺着控件树向上搜索,直到找到创建控件那个线程(通常是主线程),然后进入那个线程改变控件外观,确保不发生线程冲突。...正确写法示例如下: void ButtonOnClick(object sender,EventArgs e) { button.Invoke(new EventHandler(delegate...(new EventHandler(delegate { button.Text=”关闭”; })); } 在C# 3.0及以后版本中有了Lamda表达式,像上面这种匿名委托有了更简洁写法

1.3K30

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

这是小白学习软件开发系列课程,旨在帮助对电脑编程感兴趣朋友学习并熟悉C#技术。...其中基础部分已经讲解完毕,可以查看:C#入门教程(一)–.Net平台技术介绍、C#语言及开发工具 这算是学习电脑编程第二部分,带领你一起开发电脑桌面应用程序。终于可以摆脱黑框控制台应用程序了。...认识Winform Winform 可以被称作窗体,主要用于制作桌面应用程序(平常使用QQ就是桌面应用程序范畴),里面包含大量丰富控件供开发使用。...是的我们要做就是,这样一个窗体。这就是Winform。 ? 登录界面实现 先做一个登录功能实现吧。对于Winform我们需要知道有个叫做控件东西。 什么是控件?...比如在使用QQ时候,一个图片,一个按钮都是一个控件Winform控件主要显示在工具箱里面: ? 登陆界面控件: ? 直接拖拽工具箱内容到窗体上就可以了,此时你进行微调,拖拽出来图中效果。

6.6K10

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

问题点描述:   我新建一个线程,并在这个线程中,把某个控件父级去掉或者更改,导致报这个异常 网上解析如下:   “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体...STA 模型要求需从控件非创建线程调用控件任何方法必须被封送到(在其上执行)该控件创建线程。...基类 Control 为此目的提供了若干方法(Invoke、BeginInvoke 和 EndInvoke)。Invoke 生成同步方法调用;BeginInvoke 生成异步方法调用。...如果您在控件中为大量占用资源任务使用多线程,则用户界面可以在背景线程上执行一个大量占用资源计算同时保持可响应。 用人话描述为:控件是属于主线程(UI线程),不可以跨线程修改其父级。...,又要新建委托 所以我把它简化如下:           //使用拉姆达表达式创建一个委托,委托里面修改控件父级           Action delega1 = () =>

3.2K41

WinForm嵌入Web网页解决方案

这就是一个典型Web网页中启动客户端程序场景。更形象应用场景是,WinForn/WPF客户端程序嵌入Web程序,Web程序网页中js调用WinForm/WPF窗体以及业务方法。...后面会详细介绍。   WinForm程序中集成网页基本原理就是通过一个包含类似浏览器功能控件,将Web网页载入并解析渲染出来。...http://mybrowse.osfipin.com WinForm Browser 控件 WebBrowser    微软WinForm开发框架中老牌控件。...CefSharp【推荐】   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET应用程序简单方法。...它是用C#写成,里面有大量C#注释,geckofx是最完美的默认iE核心webbrowse控件替代控件

4.4K11

winform能做出漂亮界面吗_winform界面美化第三方控件

大家好,我是架构君,一个会写代码吟诗架构师。今天说一说winform能做出漂亮界面吗_winform界面美化第三方控件,希望能够帮助大家进步!!!...,您需要传递两个转换器作为最后 SetBinding 方法参数。... CheckBox.CheckState 属性,SetBinding 方法 Lambda 表达式是转换属性值转换器。...要在同一控件中组合多个属性值,请使用 MvvmContext.SetMultiBinding 方法。...此方法接受以下参数: 控件名称; 应该绑定控件属性; 一个字符串数组,填充了可绑定 ViewModel 属性名称,这些属性值应该组合在一起; 一个格式字符串(对于不可编辑控件)或一对转换器(如果允许用户编辑绑定控件

3.2K20

.NET混合开发解决方案14 WebView2基本身份验证

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...,以提供正确用户名和密码 17 18 // 使用应用程序或UI框架方法从最终用户获取输入...在下次传递事件流期间,使用不同 NavigationId 方法。 系列目录     【已更新最新开发文章,点击查看详细】

1.7K20

mfc wpf winform(工业用mfc还是qt)

MFC和QT是C++中常见GUI框架,而WinForm和WPF是C#中常用框架,不过我们一般很少叫WinForm框架,可能直接叫图形控件类库更多点.反正只是个称呼罢了,爱咋叫就咋叫.另外WinForm...为啥把这四个框架放一起来说呢,因为四者之前有类似的地方.相同语言之间框架有相似那是毫无疑问,但实际上不同语言之间类库也有类似的地方了.C++中MFC和C#WinForm有点类似,而C++中QT...与C#WPF又有点类似 MFC与WinForm 前面讲了这四个框架都是简化两层MVC模式.MFC中数据逻辑处理自然是放后缀为h,cpp这些文件中.而页面相关那一堆东东放资源文件rc后缀文件中....只不过这些功能在C#中用很少.那些页面控件也不再是放资源文件中.WinForm中一切皆使用面向对象,数据逻辑处理代码与UI代码都是在同一个类中,只不过C#有分部类概念,就是说同一个类代码可以分开在几个文件中...应该说从符合我们思维习惯角度来说WinForm是最容易理解,UI页面对应代码完全是标准C#代码.

2.2K10

【从业余项目中学习2】C# 实现调用Matlab函数(Visual Studio:2008, Matlab:R2009a)

最近正在给客户做个人项目,要求实现C#与Matlab之间调用,即C# winform界面收集用户输入参数,将参数传递给Matlab算法计算,Matlab函数返回结果显示在winform界面上...另外即便我执行这安装命令,也找不到正确编译器。总之,我并没有按照网上教程,直接"deploytool"即可。这也提醒自己:实践过后,才知是否正确,不要盲目听从别人方法。     B....\bin\win32\v2.0,MWArray是用于C#与Matlab之间数据交换类,传值,取结果都用到它)     B....执行C# winform程序,验证计算结果,确定是否执行了Matlab函数调用     1. 输入初值 ?     2. 得到结果 ? 四.  小结   由此,可实现C#对Matlab算法调用。...当然这里只是自己开发需要时,设计一个小例子。由于Matlab计算,输入与结果需要大量矩阵,那C#与其之间数据交换也是通过MWArray进行,只要遵循接口规范,都可以实现。

2.8K70
领券