C#中FormClosing与FormClosed的区别详细解析_C#教程_脚本之家

FormClosing事件

在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。

如果取消此事件,则窗体仍然保持打开状态。

当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。

通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写DialogResult的值。

FormClosed事件

在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。

可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。

来源URL:http://www.jb51.net/article/42284.htm

WebClient vs HttpClient – thankplus – 博客频道 – CSDN.NET

Web­Client

 

 

Http­Client

 

 

 

 

Avail­able in older ver­sion of .NET

 

.NET 4.5 only. Cre­ated to sup­port the grow­ing need of the Web API REST calls

 

 

 

WinRT appli­ca­tions can­not use WebClient

 

Http­Client can be used with WinRT

 

 

 

Pro­vides progress report­ing for downloads.

 

No progress report­ing for downloads.

 

 

 

Does not reuse resolved DNS, configured-cookies.

 

Can resuse resolved DNS, cookie con­fig­u­ra­tion and other authentication.

 

 

 

You need to new up a Web­Client to make con­cur­rent request.

 

Sin­gle Http­Client can make con­cur­rent requests.

 

 

 

Thin layer over WebRe­quest and WebResponse

 

Thin layer over Http­We­bRe­quest and HttpWebResponse

 

 

 

Mock­ing and test­ing Web­Client is difficult

 

Mock­ing and test­ing Http­Client is easy

 

 

 

Sup­ports FTP.

 

No sup­port for FTP.

 

 

 

Both syn­chro­nous and Asyn­chro­nous meth­ods are avail­able for IO bound requests.

 

All IO bound meth­ods in HTTP­Client are asynchronous.

 

 

 

原文地址:http://blogs.k10world.com/technology/webclient-httpclient-consume-http-requests/

来源URL:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c4224603103ab6e07b604a57ce963c215afe170bf7a6613464587ef686ce8e49d8bc98232c9c6269304a891005d318b8cb37609670875b99fe47bcedac7484aea389991211dd52752bdeabdc0646&p=8b2a9711838911a058ee930c5859c4&newp=8b2a9714949909f01abd9b7e0e1189231610db2151d7d31f2e96c900cc26&user=baidu&fm=sc&query=c%23+webclient+httpclient&qid=bf97647c00685ae9&p1=5

黄聪:C#中PictureBox异步加载图片 – 黄聪 – 博客园

void Button1Click(object sender, EventArgs e)
{
//图片异步加载完成后的处理事件
pictureBox1.LoadCompleted += new AsyncCompletedEventHandler(pictureBox1_LoadCompleted);
//图片加载时,显示等待光标
pictureBox1.UseWaitCursor = true;

//采用异步加载方式
pictureBox1.WaitOnLoad = false;

//开始异步加载,图片的地址,请自行更换
pictureBox1.LoadAsync(http://www.zu14.cn/wp-content/uploads/2009/02/image14.png);
}

void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e)
{
//图片加载完成后,将光标恢复
pictureBox1.UseWaitCursor = false;
}

来源URL:http://www.cnblogs.com/huangcong/archive/2010/03/26/1697091.html

C# 中 async/await 调用传统 Begin/End 异步方法 – dudu – 博客园

最近在改进园子的图片上传程序,希望实现用户上传图片时同时将图片文件保存在三个地方:1)服务器本地硬盘;2)又拍云;3)阿里云OSS。并且在保存时使用异步操作。

对于异步保存到本地硬盘,只需用 Steam.CopyToAsync() 将上传文件流异步复制到 FileStream 即可。

对于异步保存至又拍云,只要借助 WebRequest.GetRequestStreamAsync() + Steam.CopyToAsync() 就可以实现。

而阿里云OSS提供了 .NET SDK,使用起来很方便,但是之前并没有提供异步接口,成为异步化的一个障碍。 继续阅读“C# 中 async/await 调用传统 Begin/End 异步方法 – dudu – 博客园”

.NET(C#):await返回Task的async方法_幽灵学院 – 中国最权威的网络安全门户网站!

众所周知,async方法只可以返回void,Task和Task<T>。对于返回void的async方法,它并不是awaitable,所以其他方法不能用await方法来调用它,而返回Task的async方法则可以。

那么当async方法返回Task后,接着await,那被await的Task是一个什么概念?是async方法中第一个被await的Task?不,它代表目标async方法的全部执行,其中包括被await分割的连接Task,但是不包括非await造成的多线程执行。 继续阅读“.NET(C#):await返回Task的async方法_幽灵学院 – 中国最权威的网络安全门户网站!”

C#中async编程完全代替了Task了吗_百度知道

async会和当前线程的SychronizeContext关联,在Web和UI上面的表现某些情况会和Console的不一致。(例如一个async任务的Task上调用.Wait(),Web和UI会死锁而Console不会)
而Task.Run无论在哪里都是默认使用ThreadPool的SynchronizeContext,在Web和UI和Console上的表现一致。
所以不能说async完全替代了Task,Task是作为TPL(Task Parallel Library,并行任务库)的一员,具有比async/await关键字更高的可控性。

提问者评价

现在才发现这两个其实并不冲突。在把一个普通方法包装成一个异步方法的时候,这两个东西需要一起使用

来源URL:http://zhidao.baidu.com/link?url=yAK-C4FQ4JVEmwOimywqloKrX1fzjhWsVjfjkmsclpEbyforicZDXIedhMIXCXf3_9Q05YS640YJqzTcJqYic8wcKe0sMq3EjDhdb9Ww8Y3

C#——如何使tableLayoutPanel 不闪烁 – 无忧的日志 – 网易博客

//设置tablelayoutpanel控件的DoubleBuffered 属性为true,这样可以减少或消除由于不断重绘所显示图面的某些部分而导致的闪烁
  tableLayoutPanel1.GetType().GetProperty(“DoubleBuffered”, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(tableLayoutPanel1, true, null);

来源URL:http://blog.163.com/gaofang0430211@126/blog/static/183672082011101143442133/

C# 自定义控件制作和使用实例 – 小熊之家 – 博客频道 – CSDN.NET

上篇:控件制作
本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果。
我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享。
第一步:新建一个控件库项目:myControl

继续阅读“C# 自定义控件制作和使用实例 – 小熊之家 – 博客频道 – CSDN.NET”

C#开发之自定义控件的简单使用 – whuarui2010的专栏 – 博客频道 – CSDN.NET

1.开发自定义控件

自定义控件在开发中算常用的技术,因为在解决实际问题时往往.NET Framework提供的控件不能满足所有的需求,还好可以根据.NET Framework提供的基础控件组合扩展成自定义控件

开发自定义控件需要先新建一个Windows窗体控件库的项目,在该项目中设计UserControl,步骤如下图: 继续阅读“C#开发之自定义控件的简单使用 – whuarui2010的专栏 – 博客频道 – CSDN.NET”

C# 常用控件及单击事件 – J_une – 博客园

1、窗体
1、常用属性
(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。
(2)WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。
(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。(System.Windows.Forms.SystemInformation.WindowsArea.Height获取显示器的高度)
(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width属性:用来获取或设置窗体的宽度。
(6)Height属性:用来获取或设置窗体的高度。  继续阅读“C# 常用控件及单击事件 – J_une – 博客园”

C#填充字符串_C# 博文_CS程序员之窗

  • 本文介绍C#填充字符串,包括String.PadLeft:用前导字符填充字符串使其达到指定的总长度。String.PadRight:用尾随字符填充字符串使其达到指定的总长度。

使用下列 String 方法之一创建新的字符串,其中包含原始字符串以及用于填充原始字符串使其达到指定总长度的前导或尾随字符。填充字符可以是空格或指定字符,因此可显示为右对齐或左对齐。 继续阅读“C#填充字符串_C# 博文_CS程序员之窗”

C#中在WebClient中使用post发送数据实现方法_C#教程_脚本之家

很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。本文就较为详细的说明了WebClient中使用post发送数据实现方法。

下面先说说WebClient 最主要的功能。 继续阅读“C#中在WebClient中使用post发送数据实现方法_C#教程_脚本之家”

C# 中panel的mousewheel鼠标滚轮事件触发 – 为程序员服务

如果将窗体或容器控件(如Panel控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现 滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容。但是默认情况下滚动条的移动只能通过鼠标直接拖动滚动条来实现,而不能通过鼠标的滚 轮来实现上下移动,因此需要手动添加代码来实现这个功能。

滚动鼠标的滚轮,触发的是窗体或控件上的 MouseWheel 事件。但是在VS.net2005中,窗体和控件的事件列表中却不包含 MouseWheel 事件,因此关于这个事件的全部代码必须手动输入。这里以添加一个Panel的 MouseWheel 事件为例。首先在窗体的构造函数或InitializeComponent函数中,添加对MouseWheel 事件的订阅: 继续阅读“C# 中panel的mousewheel鼠标滚轮事件触发 – 为程序员服务”