所谓的潇洒

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

随笔分类 -  Winform

理解前台线程和后台线程
摘要:步骤: 1.准备一个测试程序,主窗口中通过按钮调起子窗口 2.子窗口添加启动线程的按钮,按钮事件代码见下方 3.禁用前台线程并启用后台线程代码,运行程序,显示子窗口,启动线程,关闭子窗口,控制台有打印输出,关闭主窗口,调试停止,打印停止 4.禁用后台线程并启用前台线程代码,运行程序,显示子窗口,启动 阅读全文

posted @ 2024-03-15 16:52 所谓的潇洒 阅读(12) 评论(0) 推荐(0) 编辑

This row already belongs to another table.
摘要:DataTable的row要想加入到另一个DataTable可以用以下方法: tb.Rows.Add(row.ItemArray) 一直记得是List的元素不能直接加入到另一个,原来是记错了,List完全可以,而且同一个对象可以在同一个List中添加多次。 阅读全文

posted @ 2022-12-06 14:28 所谓的潇洒 阅读(206) 评论(0) 推荐(0) 编辑

报表相关
摘要:DataGridView设置列头颜色: dbGrid.EnablHeadersVisualStyles=false; dbGrid.Columns[0].HeaderCell.Style.BackColor = System.Drawing.Color.Orange; NPOI导出Excel单元格格 阅读全文

posted @ 2021-07-28 15:20 所谓的潇洒 阅读(30) 评论(0) 推荐(0) 编辑

读串口
摘要:private SerialPort _serialPort = null; string _qrCode = string.Empty; private void InitQrIOPort() { try { _serialPort = new SerialPort(); //设置参数 _seri 阅读全文

posted @ 2021-07-16 16:25 所谓的潇洒 阅读(52) 评论(0) 推荐(0) 编辑

界面延迟加载
摘要:如果是在OnLoad事件中,用子线程+BeginInvoke,而在ParentChanged或VisibleChanged事件中子线程之前的部分不能提前显示,代码如下: private void form1_ParentChanged(object sender, EventArgs e) { // 阅读全文

posted @ 2021-07-16 16:15 所谓的潇洒 阅读(44) 评论(0) 推荐(0) 编辑

上下文同步
摘要:System.Threading.SynchronizationContext _syncContext; public Form1() { InitializeComponent(); _syncContext = SynchronizationContext.Current; } private 阅读全文

posted @ 2021-07-03 14:32 所谓的潇洒 阅读(66) 评论(0) 推荐(0) 编辑

HttpListener
摘要:不用部署到IIS上的web服务 程序内嵌Http服务,方便交互 阅读全文

posted @ 2020-12-29 10:27 所谓的潇洒 阅读(503) 评论(0) 推荐(0) 编辑

下拉框分步加载
摘要:对话框加载时,填充10条选项 list= getData().Take(10).ToList();//从数据库查询前10条数据 list.Add(new Student { ID = 0, Name = "加载更多..." }); comboBox1.Items.AddRange(list); co 阅读全文

posted @ 2020-12-25 16:54 所谓的潇洒 阅读(137) 评论(0) 推荐(0) 编辑

打印
摘要:打印帮助类 using System; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace MyWinformProject { p 阅读全文

posted @ 2020-12-13 15:43 所谓的潇洒 阅读(132) 评论(0) 推荐(0) 编辑

IniHelper
摘要:using System.IO; using System.Runtime.InteropServices; using System.Text; namespace MyProject { public class IniHelper { private string iniPath = stri 阅读全文

posted @ 2020-11-11 16:36 所谓的潇洒 阅读(149) 评论(0) 推荐(0) 编辑

带复选框的TreeView
摘要:项目中多处用到TreeView,每一个树都要全选、取消全选、层级联动、屏蔽双击复选框,于是很有必要封装一个CheckTreeView,步骤如下: 在项目中右键->添加->新建项,选择Windows Forms下的用户控件,名称改为CheckTreeView.cs 拖入一个TreeView,Check 阅读全文

posted @ 2020-09-17 17:24 所谓的潇洒 阅读(699) 评论(0) 推荐(0) 编辑

多个控件共用右键菜单
摘要:多个控件共用右键菜单,可以实现菜单事件代码共用,那么问题来了,当事件触发后怎么知道是哪个控件触发的呢? 方法: private void menu_Rename_Click(object sender, EventArgs e) { try { var pBox = (PictureBox)((Co 阅读全文

posted @ 2020-08-31 14:16 所谓的潇洒 阅读(286) 评论(0) 推荐(0) 编辑

子线程更新界面文本
摘要:当在线程中处理完一个事情,需要将结果反馈给界面时,如果直接修改界面文本就会报“在不是创建它的线程中访问控件”的错。在此记录两个处理办法: 1.线程同步 System.Threading.SynchronizationContext _SyncContext = new System.Threadin 阅读全文

posted @ 2020-06-15 16:45 所谓的潇洒 阅读(177) 评论(0) 推荐(0) 编辑

只读方式读取文件,防止被占用
摘要://显示图片 pbCapture.Image = ExtendHelper.FileToImg(fileName); //pbCapture是System.Windows.Forms.PictureBox public static Image FileToImg(string imageName) 阅读全文

posted @ 2020-04-26 11:30 所谓的潇洒 阅读(313) 评论(0) 推荐(0) 编辑

ListView显示复选框
摘要:listV_Emp.View = View.Details;listV_Emp.CheckBoxes = true; ListViewItem item = new ListViewItem();item.SubItems[0].Text = string.Empty;//必须空出第1列给复选框用, 阅读全文

posted @ 2020-04-13 12:09 所谓的潇洒 阅读(660) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示