c# winform 关闭窗体时同时结束线程实现思路
前不久,做一个winform小程序,是给客户导数据用的。当时就发现调试的时候,线程有点问题,到某个点时就走不动了。但是运行确实没有问题的。
只是在关闭窗体后,资源管理器里,一大堆进程。
当时,客户急着用,小测了下,导出数据无误,进程就先不管了。
后来自己去查资料,发现只要在线程那里设置个属性
代码如下:
Thread th = new Thread(Excute);
th.IsBackground = true;这样就解决问题了。
这个属性的意思就是把线程设置为后台线程。
然后关闭进程的同时,线程也会随之关闭。
不知道各位还有什么妙招,多多指导哈
相关推荐
-
C#,winform,ShowDialog,子窗体向父窗体传值
调用showdialog方法后,调用代码被暂停执行,等到调用showdialog方法的窗体关系后再继续执行.而且窗体可以返回一个dialogresult值,他描述了窗体关闭的原因,例如OK,Cancel,yes,no等.为了让窗体返回一个dialogresult,必须设置窗体的dialogresult值,或者在窗体的一个按钮上设置dialogresult属性. 例子: 下面是子窗体代码,要求输入phone,然后会返回给父窗体. using System; using System.Collect
-
C# SkinEngine控件 给窗体添加皮肤的方法
自己写的一个日历记事本效果图 具体步骤: 1.添加控件SkinEngine. 1.右键"工具箱"."添加选项卡",取名"皮肤". 2.右键"皮肤","选择项"弹出对话框. 3.点击"浏览",找到IrisSkin2.dll,这时你会发现 SkinEngine 的控件已经被打上勾 - 确定.2.将 SkinEngine 控件添加到窗体上.3.把皮肤文件(以ssk为后缀名)放在&quo
-
C#实现让窗体永远在窗体最前面显示的实例
本文以实例描述了C#实现让窗体永远在窗体最前面显示的方法,具体步骤如下: 1.新建一个窗体程序,添加一个Timer以及设置它可用并绑定事件. 2.设置窗体的TopMost属性为True 3.然后设置代码如下即可实现. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; usin
-
解决C#中取消方向键对控件焦点控制的实现方法
在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"."KeyUp"."KeyDown"事件,可以处理某个按键的自定义处理事件.有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换.而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可.下面的方法可以取消方向键对控件焦点的控制:
-
C# 开发圆角控件(窗体)的具体实现
最近在做卡片视图的程序,要求将控件做成带有圆角的效果,下面是我在网上查找的资料,经过测试,确定可以实现功能.其中方法三既适应于控件,也适应于窗体. 先上传效果图: 方法一: 增加命名空间:using System.Drawing.Drawing2D; 添加方法如下:当然各角的点可根据需要确定. 复制代码 代码如下: private void Type(Control sender, int p_1, double p_2) { GraphicsPath oP
-
C#实现让窗体获得焦点的方法示例
本文实例讲述了C#实现让窗体获得焦点的方法.分享给大家供大家参考,具体如下: 开发环境:Visual Studio .NET 2005 下的Windows Form Application 应用场景:当我们有个窗体中的数据发生了变化而此窗体又没有获得焦点(不是用户操作的当前窗口)的时候,我们希望它获得焦点,这样用户就可以立刻发现它上面的数据发生了变化. 新建一个Window应用程序,会建立Form1,再添加一个Timer(timer1),设置如下属性: 然后添加timer1的Tick事件函数,完
-
C#最简单的关闭子窗体更新父窗体的实现方法
主窗体Form1关键代码: 将子窗体最为对话框模式弹出,当窗体关闭或取消时更新主窗体 复制代码 代码如下: private void simpleButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; DialogResult result=f2.ShowDialog(); if (result == DialogResult.Cancel) { this.gridControl1.
-
C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
本文实例讲述了C# Winform实现捕获窗体最小化.最大化.关闭按钮事件的方法,主要是通过重写WndProc来实现的.分享给大家供大家参考.具体方法如下: 主要功能代码如下: const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const int SC_MINIMIZE = 0xF020; const int SC_MAXIMIZE = 0xF030; protected override void WndProc(ref
-
用 C# Winform做出全透明的磨砂玻璃窗体效果代码
首先, 调用系统 API, 这里如果要引用神马的, 就不一一列出了, 大家自己引用一下. 复制代码 代码如下: [StructLayout(LayoutKind.Sequential)] public struct MARGINS { public int Left; public int Right; public int Top; public int Bottom; } [DllImport("dwmapi.dll", PreserveSig = false)] public s
-
C# WINFORM 强制让窗体获得焦点的方法代码
复制代码 代码如下: //调用API [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄 [System.Runtime.InteropService
-
C#设置子窗体在主窗体中居中显示解决方案
问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧 其实表面上看是很简单的 开始吧,现在有两个窗体Form1主窗体,Form2子窗体 而且我相信大部分人都会这样写 在子窗体的Load事件中 这样写 复制代码 代码如下: this.StartPosition = FormStartPosition.CenterParent; 其实这样写是不对的,正确的写法应该是 复制代码 代码如下: this.StartPosition = FormStartPosition.CenterSc
-
C#窗体编程不显示最小化、最大化、关闭按钮的方法
本文介绍在C#窗体编程时,如何设置不显示右上角的最小化最大化关闭按钮.可以通过this.ControlBox这个属性的值来控制. 在Windows的窗体编程中,基本上每一个窗体都是一个最小化.最大化和关闭按钮的.见惯了千篇一律,我们有时需要有一点新意,比如来把右上角的这最小化.最大化和关闭三个按钮去掉. 对于最大化和最小化按钮,在C#窗体开发时,各一个属性来启用或禁用这两个按钮.对于最大化来说,this.MaximizeBox=false即可禁用最大化按钮.而这里的this是指窗体对象本身.而t
随机推荐
- cs1.5脚本世界名队员之Heaton专用脚本
- Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
- VBS教程:对象-正则表达式(RegExp)对象
- HTTP错误500.19解决方法(定义了重复的节点)
- 详解使用JavaCV/OpenCV抓取并存储摄像头图像
- 详解Java编程中JavaMail API的使用
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
- 解析:通过php socket并借助telnet实现简单的聊天程序
- JavaScript中Math.SQRT2属性的使用详解
- JS实现即点即编辑功能代码
- Java数据结构及算法实例:三角数字
- 使用rbenv来管理Ruby版本的方法
- 删除重复的记录,并保存第一条记录或保存最后一条记录
- Javascript实例教程(19) 使用HoTMetal(3)
- php实现网页常见文件上传功能
- 如何正确实现Android启动屏画面的方法(避免白屏)
- 基于VUE实现的九宫格抽奖功能
- Django保护敏感信息的方法示例
- 如何使用Flutter开发一款电影APP详解
- JS实现点击发送验证码 xx秒后重新发送功能