最近在做一个winform的小软件(抢票的...).登录窗体要从远程web页面获取一些数据,为了不阻塞登录窗体的显示,开了一个线程去加载数据远程的数据,会报一个错误"线程间操作无效: 从不是创建控件“lbl_loading_msg”的线程访问它."百度一下,原来从.net framework 2.0开始,为了安全,不允许跨线程操作控件.解决办法如下:1.声明一个拥有委托类型的方法,作为代理 操作控件的代码: /// <summary> /// 在线程中操作窗体的控件 ///…
在WebForm中,可以使用反射将业务对象绑定到 ASP.NET 窗体控件.最近做Winform项目,也参考WebForm中的代码实现同样的功能.     Winform没有提供类似WebForm中的FindControl方法,我于是用遍历控件的方式,写了一个类似WebForm中的这个方法,考虑到Winform中的很多控件放在Label.TabControl中,方法采用了递归的方式.     Winform和Winform的控件也有些区别,如在Winform中,DateTimePicker取值是…
在 WinForm 程序启动时,不显示主窗体的实现方法主要有以下5种,第五种最简单,而且效果也不错,第四种方法也值得推荐. 实例代码如下: //隐藏窗体的方法1/5:不指定任何窗体为主窗体 //注意:通常,在一个程序中,关闭主窗体,就可以关闭应用程序. //但是在没有主窗体中,不行. //只能使用Application.Exit()才能关闭应用程序. //using可以保证Application结束前,关闭MyMainForm using (new Form1()) { Application.…
场景 在同一个Winform窗体中,点击一个Button按钮时, 获取同窗体的其他控件的属性. 首先需要对要获取的控件赋予Name属性,然后就可以通过Name进行获取. 实现 在Button的点击事件中: private void confirmbButton_Click(object sender, EventArgs e) { #region 获取X轴的属性并赋值给XAxisModel //根据控件的 System.Windows.Forms.Control.Name 属性搜索控件并生成由所…
我们知道  Winform 前身与 XP 系统 同一时代出生 , 那时候显示器还是LCD 和 大头机 ,显示器普遍  96 DPI  . 随着显示器质量改善,2K 屏, 4K屏普及,DPI 达  192 甚至更高.  原来winform 程序在 96 dpi 环境开发编译 程序 , 运行完好,在  192  dpi  下,布局可能会错乱 , 或者字看起来小很多 , 字体与边框线条缩放规则不协调等,因此微软提供配置 支持高低 分辨率布局兼容 方式如下: 1.  通过代码实现: static cla…
昨天分享了一个环形滚动条控件,今天分享一个提示框风格的窗体.代码如下: /// <summary> /// 继承自Form,但将FormBorderStyle设置为None /// </summary> public partial class TipForm : Form { public TipForm() { InitializeComponent(); } /// <summary> /// 鼠标按下位置,方便移动窗体 /// </summary>…
public void ResMsg()        {            while (isRecMsg)            {                //准备一个数组 准备接收 服务端发来的数据                byte[] msgRec = new byte[1024 * 1024 * 2];                //接收服务端发来的数据,此方法也会阻断当前线程,并返回接收的数据的长度                int recLength =…
今日发现: 当返回值为Dialog.OK时,会自动退出,不需要this.close().别的返回值仍需要.…
我想实现的功能是创建一个服务程序,然后在服务Start时动态创建一个窗体Form,然后把Form缩小时变成TrayIcon放在Windows托盘上. 我在服务程序的OnStart事件中写到 Started := True; writeWorkLog('serve2 start'); // 写日志 Svcmgr.Application.CreateForm(TForm1, Form1); Form1.show; 日志过程为: procedure writeWorkLog(sqlstr: strin…
---恢复内容开始--- 收到的工作是将一个ERP的窗体程序改为网页实现,所以就肯定需要弹框来选择(如:物料编码.部门.业务员等等) 本文采取的前段框架是LayUI. layUI的官网API网址:https://www.layui.com/doc/ 在此只贴出几个关键性的代码: 弹出你显示选择数据的界面 然后你就要将你选择的数据返回至父窗体: 在这里需要提醒的一点是记得给父窗体引入JQery版本. 因为ERP的窗体涉及到了表头表体,本人未找到将值返回给表格的td的Text,所以表体的数据添加就使…