• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

KingDZ 变菜鸟,每日一个C#小实例之---C#MessageBox小技巧

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

大家好,昨天俺休息了一天,木有给大家更新实例,今天呢,决定了,哈哈,更新三个。希望大家给俺好评哦,3Q,开始吧,第一个来个简单的。C#里面的MessageBox相信大家都玩过,哈哈。今天我们就实现让他自己数秒之后自己关闭。嘿嘿

今天看到一个有意思的“老师”,所以奉献给大家

写字楼里写字间,写字间里程序员;程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;酒醉酒醒日复日,网上网下年复年。

宁愿老死程序间,只要老板多发钱;小车大房不去想,撰个2k好过年。
若要见识新世面,公务员比程序员;一个在天一在地,而且还比我们闲。
别人看我穿白领,我看别人穿名牌;天生我才写程序,臀大近视肩周炎。

年复一年春光度,度得他人做老板;老板扣我薄酒钱,没有酒钱怎过年.
春光逝去皱纹起,作起程序也委靡;来到水源把水灌,打死不做程序员.
别人笑我忒疯癫,我笑他人命太贱;状元三百六十行,偏偏来做程员!

但愿老死电脑间,不愿鞠躬老板前;奔驰宝马贵者趣,公交自行程序员。
若将程员比妓女,一在平地一在天;若将程员比车马,他得驱驰我无闲。
别人笑我忒疯癫,我笑自己命太贱;不见满街漂亮妹,哪个归得程序员。

不想只挣打工钱,那个老板愿发钱;小车大房咱要想,任我享用多悠闲。
比尔能搞个微软,我咋不能捞点钱;一个在天一在地,定有一日乾坤翻。
我在天来他在地,纵横天下山水间;傲视武林豪杰墓,一樽还垒风月山。


电脑面前眼发直,眼镜下面泪茫茫;做梦发财好几亿,从此不用手指忙。
哪知梦醒手空空,老板看到把我训;待到老时眼发花,走路不知哪是家。

各位在此穷抱怨,可知小弟更可怜;俺学编程两年半,至今没赚一分钱。
听说三十是末日,二十三岁在眼前;发誓立志傍微软,渺渺前程对谁言?

 

哦了,开始吧,这里我们有好几种办法,首先是网络上面最常见的一种调用APi的方法。当然我换应大家和我讨论其他的办法,希望大家不吝赐教。

[DllImport("User32", CharSet = CharSet.Auto)]
private extern static IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("User32", CharSet = CharSet.Auto)]
public static extern int PostMessage(IntPtr hwd, int msg, IntPtr wparam, IntPtr lParma);
public const int WM_CLOSE = 0x10;

上面的这两个API函数的用法如下

http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx

http://msdn.microsoft.com/en-us/library/ms644944(VS.85).aspx

 

大家可以去,仔细的研究一下。这里我们用到的就是用一个计时器,然后调用API捕获到弹出的窗口,然后实现我们想要的效果。

// 按照MessageBox的标题,找出Messagebox这个弹出框

void KillMessageBox() {
    IntPtr ptr = FindWindow(null, "自动关闭");
    if (ptr != IntPtr.Zero)

        PostMessage(ptr,WM_CLOSE,IntPtr.Zero,IntPtr.Zero);

}

FindWindow就是专门找出窗口准备的,Timer的Tick事件中

void setTimer_Tick(object sender, EventArgs e)
{
    KillMessageBox();
    ((Timer)sender).Stop();
}

哈哈,完事。看效果吧,代码后面附上

 

当然,你也可以用这个API

static extern bool EndDialog(IntPtr hDlg, out IntPtr nResult);

哈哈,例子太简单了,OK完事。

 

MyMessageBox.rar代码中有我发现的一个非常棒的类,给大家了


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Effective C# Item 8: Ensure That 0 Is a Valid State for Value Types发布时间:2022-07-14
下一篇:
C#基础之数组排序,对象大小比较发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap