c#桌面开发
3000问
这个作者很懒,什么都没留下…
展开
-
C#中关于数据库语句执行中参数的顺序
在写update的sql语句时,写成下面这种,运行时数据执行不成功 private void button2_Click(object sender, EventArgs e) { int a = dt.UpdateState(textBox2.Text.Trim(), textBox3.Text.Trim()); if (a > 0) { MessageBox.Show("保原创 2020-08-20 11:21:07 · 249 阅读 · 0 评论 -
多线程操作控件属性和方法
设置属性和方法private void button2_Click(object sender, EventArgs e) { timer.Stop(); Thread thread = new Thread(() => { //this.label1.Text = i.ToString(); if (this.button1.InvokeReq原创 2020-08-11 16:46:36 · 166 阅读 · 0 评论 -
C# BackgroundWorker使用总结
查询了一下MSDN文档,其中微软就BackgroundWorker类的功能有这么一个描述(英文的,根据个人理解翻译):BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(UI)停止响应的耗时操作(比如文件下载数据库事务等),并且想要一个响应式的UI来反应当前耗时操作的进度。可以看的出来,BackgroundWorker组件提供了一种执行异步操作(后台线程)的同时,并且还能妥妥的显示操作进度的解决方案。于是乎,我便深入的了解了一下BackgroundWorker类。针对Back.转载 2020-07-14 15:54:41 · 345 阅读 · 0 评论 -
分别用Invoke与BackgroundWorker实现计时器
在学习.NET多线程操作的过程中,有了这个小的示例程序。它们都使用了System.Timers.Timer作为计时器,只是在更新UI时分别使用了传统的Invoke方式与.NET 4.0后引入的BackgroundWorker。从个人感受而言,前者少许多编码,后者从逻辑上更易理解。一、传统Invoke方式#region implementation by Invoke()private System.Timers.Timer _timer = new System.Timers.Timer转载 2020-07-13 18:44:53 · 589 阅读 · 0 评论 -
C#里面的三种定时计时器:Timer
在.NET中有三种计时器:1、System.Windows.Forms命名空间下的Timer控件,它直接继承自Componet。Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。Timer控件和它所在的Form属于同一个线程;2、System.Timers命名空间下的Timer类。System.Timers.Timer类:定义一个System.Timers.转载 2020-07-10 17:59:25 · 222 阅读 · 0 评论 -
C#多线程解决界面卡死问题的完美解决方案,BeginInvoke而不是委托delegate
问题描述:当我们的界面需要在程序运行中不断更新数据时,当一个textbox的数据需要变化时,为了让程序执行中不出现界面卡死的现像,最好的方法就是多线程来解决一个主线程来创建界面,使用一个子线程来执行程序并更新主界面这样就不会出现卡死的现像了这肯定是没有问题的,但是为什么在使用的过程中一样会有很多地方会出现卡死呢,而且有用户跟我说是我的Httphelper类的问题,其实不是,而且我再次声明我的Httphelper类跟多线程并没有关系。不要在诬赖我了哦。这个问题其实也困或了我很久,但是今天终于解决了转载 2020-07-10 17:55:28 · 6915 阅读 · 0 评论 -
设置textbox控件的高度
通过设置控件的字体Font属性的字体大小来设置控件的高度。(这种是单行控件的设置,设置多行是另外的设置方式)原创 2020-07-09 18:24:18 · 1047 阅读 · 0 评论 -
C# Winform 窗体界面”假死”后台线程阻塞 解决办法–BeginInvoke
这个方法可以用在任何后台任务耗时较长,造成界面“假死”界面控件不更新的情况。比如要要执行的数据库操作是几十万条的update语句,如果在click事件里阻塞或者做Thread.Sleep或一个耗时很长的操作,窗口就会无响应点不动了。故需要用this.BeginInvoke方法来异步执行UI线程的操作,更新界面显示。//导入按钮点击事件private void btn_import_Click(object sender,EventArgs e){ //1.绑定需要执行的操作方法转载 2020-05-20 23:42:17 · 4519 阅读 · 0 评论 -
winform在发布时报错:Unable to remove directory "bin\Debug\app.publish\"。下的目录不是空的
winform在发布时报错:Unable to remove directory "bin\Debug\app.publish\"。下的目录不是空的解决方法:右键点击解决方案,选择清理,再发布就可以原创 2020-05-08 09:43:10 · 695 阅读 · 0 评论 -
C#利用泛型,避免子窗体重复开启
private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.ShowDialog(); }这样写会导致打开from2界面时,from1操作不了private void button1_Click(ob...原创 2020-04-25 17:49:45 · 393 阅读 · 0 评论 -
c#debug时异常,Could not copy "obj\x86\Debug\EquipmentInformationImport.exe" to "bin\Debug\EquipmentInfo
在publish项目后,将发布的项目剪切到了另外一个文件夹再次修改代码,debug是报错Warning 5 Could not copy "obj\x86\Debug\EquipmentInformationImport.exe" to "bin\Debug\EquipmentInformationImport.exe"xxxxxxxxxxxxxxxxxxxx不能将文件复制...原创 2020-04-24 16:55:16 · 437 阅读 · 0 评论