c# WinForm 编程总结】的更多相关文章

学习C#语言的朋友们肯定或多或少地接触到了WinForm编程,在C#语言的可视化IDE中(如VS.NET中)使用设计器可以让我们轻松地完成窗体.按钮.标签.图片框等等控件的组合,我们可以轻易地做出界面友好的WinForm应用程序.我们还可以通过WinForm程序中强大的事件处理机制来使我们的应用程序更加丰满. 当然,我们这次不谈窗体.不谈按钮…… 我们谈谈DataGridView(数据网格视图). 作为真正与用户进行信息交互的界面,很大程度上需要向用户完整地展示数据,而在WinForm相关的强大…
private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart(BackgroundProcess)); newthread.Start(); } /// <summary> /// 定义一个代理 /// </summary> private delegate void CrossThreadOperationControl(); private…
c# winform编程之多线程ui界面资源修改总结篇 单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e) {        Thread t = new Thread(new ParameterizedThreadStart(SetText…
暑假花了一个多月自学了Win32 SDK编程,不敢说成为了高手,但是还是颇具收获——windows的消息机制(著名的消息循环).一切控件均是窗口…… 曾经有一位网友(和我一个专业的)向我吐槽:Win32 SDK都是那么老的"老古董"了,你怎么还学它呢,岂不是浪费时间? 其实当时我听到这句话,内心比较感慨,我没做什么回应——想必大家应该知道什么是经典,什么是根源——当你知其所以然时,必是你真正知其然之时 Ok,步入今天(也是未来一段时间的)的主题——初识一下WinForm 一.初识Win…
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e) {        Thread t = new Thread(new ParameterizedThreadStart(SetTextBoxValue));     //当然也可以用匿名委托…
我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法. 法一: 用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能.下面来看看具体是怎么实现的.  首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class). 因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,…
C#中事件.事件委托.事件的订阅 例子: using System.Timers; Timer t1 = new Timer(); t1.Tick += new EventHandler(XX); public static void xx() { } 事件是语言本身规定的,如TICK,事件委托类是系统规定的, 如new EventHandler(),我们要做的是事件发生后的代码,即XX函数中的代码,也就是事件的订阅 事件的订阅就是将委托的函数代码完善,事件发生后,执行委托的代码,当然委托的要求…
public void ResMsg()        {            while (isRecMsg)            {                //准备一个数组 准备接收 服务端发来的数据                byte[] msgRec = new byte[1024 * 1024 * 2];                //接收服务端发来的数据,此方法也会阻断当前线程,并返回接收的数据的长度                int recLength =…
1.清空DataGridView /// <summary> /// 清空DataGridView /// </summary> /// <param name="dg">DataGridView</param> public void ClearDataGridView(DataGridView dg) { try { if (dg == null || dg.DataSource == null) { return; } DataTa…
1.一直以为,MouseClick事件在鼠标点击时发生,MouseDoubleClick事件在鼠标双击时发生.那么在单击鼠标时会调用MouseClick事件处理程序,双击鼠标时会调用MouseDoubleClick事件处理程序.现在发现,在双击时会调用MouseClick事件一次,调用MouseDoubleClick事件一次.而不是只调用MouseDoubleClick事件一次,也不是会调用MouseClick事件两次.…