码迷,mamicode.com
首页 > Windows程序 > 详细

C#自动弹出窗口并定时自动关闭

时间:2017-03-04 22:39:24      阅读:596      评论:0      收藏:0      [点我收藏+]

标签:object   传递   编辑   ref   分享   应用   技术分享   .net   hive   

有人要说了,弹一个ShowDialog不就完了吗?!或者MessageBox.Show("saaaaa");就可以达到目的。
但你要看到下面的情况,你就不这样说了。
我在C#中创建了一个Excel,每当我编辑一个值的时候,都会用C#代码判断这些值是否是有效的,当无效进就提醒他们。我用的就是MessageBox.Show("aaaaaaa");
但它不一定弹在最前面,因为它是C#的代码,故当Excel在最前面时,那个消息框是不能显示在最头面的。

用以下方法可以解决此问题:
MessageBox.Show("要弹的信息。", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information,MessageBoxDefaultButton.Button1, essageBoxOptions.DefaultDesktopOnly);

呵呵,虽然还是那个MessageBox.Show,但很多人都不知道呀。大家可以试试。

 
出处:http://www.cnblogs.com/pnljs/archive/2012/09/19/2694182.html
========================================================================================================
使用上面的代码,可以实现弹出窗口在最上面,但是结合第一段的代码,无法正常关闭,直接报错了。说明调用的static extern bool EndDialog(IntPtr hDlg, out IntPtr nResult);方法不能正常关闭窗口,那么咱们再重新找个可以关闭窗口的API函数把。在网上找到如下代码:
    public const int WM_CLOSE = 0x10;
 
    [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageA")]
    public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
private void button1_Click(object sender, System.EventArgs e) { IntPtr hwnd_win; hwnd_win = FindWindow(null, "要找的窗体名"); SendMessage(hwnd_win, WM_CLOSE, 0, 0); }

查找窗口函数:

        //查找窗体
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        private static extern int FindWindow(string lpClassName, string lpWindowName);
        static void Main()
        {
             //@Form1根据窗体的Text文本值获得窗体
                int WINDOW_HANDLER = FindWindow(null, @"Form1");
         }

 

出处:http://bbs.csdn.net/topics/340065537/
=======================================================================================
 
通过以上几步,我们现在可以正常的实现了我们文章开头提到的功能了。
 

C#自动弹出窗口并定时自动关闭

标签:object   传递   编辑   ref   分享   应用   技术分享   .net   hive   

原文地址:http://www.cnblogs.com/mq0036/p/6502798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!