• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Kevin Gao

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  winform

上一页 1 2

 
Winform中扩展Panel使之具备双缓存,防止闪屏
摘要:最近在开发项目的过程中,发现了系统经常会出现闪屏的现象,而启用双缓存后可以有效的解决这一问题。同时为了方便引用开发了一个具备了双缓存的Panel控件。其实要启用双缓存很简单,只需要在控件或者窗体的构造函数中加入以下的3行代码即可。扩展其它控件也是如此。关于双缓存的介绍请见上次转载的文摘解决绘图中闪烁的问题(C#)有介绍。 public class PanelEx:Panel { public PanelEx() { SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, tru. 阅读全文
posted @ 2011-11-01 15:23 Kevin Gao 阅读(3933) 评论(0) 推荐(0)
C#中使用DOS命令关闭当前正在运行的程序并重新启动
摘要:在C#中可以利用通过Pocess.Start调用Dos命令来完成很多操作,而且非常方便。例如关闭当前的应用程序,重新启动电脑等。 下面介绍几个常用的命令://重新启动电脑的命令private void RestartPC(){ //重启电脑的命令发出 Process.Start("shutdown.exe", "-r"); //关闭所有相关进程 Process.GetCurrentProcess().Kill();}//关闭电脑的命令private void ShutDownPC(){ //重启电脑的命令发出 Process.Start("sh 阅读全文
posted @ 2011-11-01 14:49 Kevin Gao 阅读(2025) 评论(0) 推荐(0)
解决绘图中闪烁的问题(C#)
摘要:如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码:请在构造函数里面底下加上如下几行:SetStyle(ControlStyles.UserPaint, true);SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲参数说明:UserPaint 如果为 true,控件将自行绘制,而不是通过操作系统来绘制。此样式仅适用于派生自 Con 阅读全文
posted @ 2011-10-31 23:26 Kevin Gao 阅读(2048) 评论(0) 推荐(1)
c# 判断网络是否连接
摘要:win32 API函数的做法: 要用的函数:InternetGetConnectedState 函数原形:BOOL InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved); 参数lpdwFlags返回当前网络状态,参数dwReserved依然是保留参数,设置为0即可。 INTERNET_CONNECTION_MODEM 通过调治解调器连接网络 INTERNET_CONNECTION_LAN 通过局域网连接网络 这个函数的功能是很强的。它可以: 1. 判断网络连接是通过网卡还是通过调治解调器 2. 是否通过代理上网 ... 阅读全文
posted @ 2011-10-31 23:21 Kevin Gao 阅读(2633) 评论(0) 推荐(6)
用C#调用Windows API向指定窗口发送
摘要:原文转载自http://www.51testing.com/?uid-175761-action-viewspace-itemid-227073一、调用Windows API。 C#下调用Windows API方法如下: 1、引入命名空间:using System.Runtime.InteropServices; 2、引用需要使用的方法,格式:[DllImport("DLL文件")]方法的声明; [DllImport("user32.dll")]private static extern bool ShowWindow(IntPtr hWnd, int 阅读全文
posted @ 2011-10-30 20:55 Kevin Gao 阅读(1389) 评论(0) 推荐(1)
在C#中SendMessage和PostMessage的参数传递
摘要:用 PostMessage、SendNotifyMessage、SendMessageCallback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处理指针就已经被释放了。 5、在 Windows 2000/XP 里,每个消息队列最多只能存放 10,000 个 Post 的消息,超过的还没被处理的将不会被处理,直接丢掉。这个值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/Windows NT/CurrentVersion/Windows] USERPostMessageLimit,最小可以是... 阅读全文
posted @ 2011-10-30 20:35 Kevin Gao 阅读(27844) 评论(2) 推荐(4)
C#中在窗体间使用消息来处理相关联的事件
摘要:在项目中有这样的需求,在主窗体隐藏时或者主进程运行时对其它窗体的控件或者事件进行控制,而且其它窗体是处于活动状态,而主窗体或者主进程是隐藏在后面的。这个时候使用句柄和消息来处理就比较好解决这些问题了,当然了也可以使用其它方法。比如将其它窗体在主窗体中申明并且定义,使之和主窗体一样一直存在于内存中,在各个窗体中申明公共方法,在主进程需要调用时直接调用即可,但是这样耗费了大量的系统资源。现在使用消息来解决这个问题。下面提供一个小程序,在主窗体中通过句柄和消息来控制子窗体中Label上文字变化和颜色,代码如下:Windowns的API类usingSystem;usingSystem.Runtime. 阅读全文
posted @ 2011-10-30 20:13 Kevin Gao 阅读(2166) 评论(0) 推荐(3)
Winform中使用控件名来查找窗体或者容器中的控件
摘要:在项目中经常遇到要动态生成控件,动态显示指定的控件或者隐藏,这就要涉及到查找控件的问题。 下面介绍下Winform中使用控件名来查找窗体或者容器中的控件的方法,代码如下:/// <summary> /// 通过控件名获取控件 /// </summary> /// <param name="strName"></param> /// <returns></returns> private Control GetPbControl(string strName) { string pbName = strN 阅读全文
posted @ 2011-10-25 15:44 Kevin Gao 阅读(10414) 评论(0) 推荐(0)
点击按钮时显示按钮被按下的效果
摘要:在实际项目中,为了提供给用户更加好的用户体验,在点击按钮时,要能显示按钮被按下时的状态,给用户一种动态的感觉。其实这在程序中实现起来也比较容易,只需多一张按钮背景图片即可,在按钮没有按下或者弹起时显示一种状态图,在按钮被压下时显示另外一种状态图。 具体实现就是除了写按钮的Click方法,还要写按钮的MouseUp和MouseDown事件。示例代码如下: /// <summary> /// 网上订购画面刷新按钮(弹起状态时) /// </summary> private string strPurchaseRefreshBtnImg = Application.Start 阅读全文
posted @ 2011-09-26 17:17 Kevin Gao 阅读(7075) 评论(0) 推荐(0)
C#获取键盘和鼠标操作的时间的类
摘要:最近在开发项目时需要实现屏保功能,即用户在设定的时间内没有对系统进行操作时,系统将会自动进入屏保状态。为此封装了一个获取鼠标键盘动作的类,并有一个方法可以返回用户多长时间没有操作系统的时间。代码如下:public class MouseKeyBoardOperate { /// <summary> /// 创建结构体用于返回捕获时间 /// </summary> [StructLayout(LayoutKind.Sequential)] struct LASTINPUTINFO { /// <summary> /// 设置结构体块容量 /// </su 阅读全文
posted @ 2011-09-19 16:06 Kevin Gao 阅读(2166) 评论(0) 推荐(0)
 

上一页 1 2