• C#关闭MessageBox消息框(转)


    最近写的一代码中.需要弹出一消息框.提示一下用户..,可如果用户长时间不做交互..程序就会出现点小问题..
    所以呢,,要在一定的时间内把MessageBox给关闭才行..
    从网上找了找也没什么太好的方法...所以只能借鉴网上的资料(主要是API函数).再加上自己的的思路..呵呵..
    看代码吧..
    首先引用:
    using System.Runtime.InteropServices;
    其次在所定义的类里面添加上:
    [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet=CharSet.Auto)]
    private extern static IntPtr FindWindow(string lpClassName, string lpWindowName); //用于找到MessageBox的句柄
    [DllImport("user32.dll")]
    static extern bool DestroyWindow(IntPtr hWnd);  //根据句柄关于MessageBox

    在你想关闭MessageBox消息框的地方加上:

    IntPtr ptr = FindWindow(null,"这里对应要关闭的MessageBox的标题");//查找MessageBox的弹出窗口,注意对应标题
    if(ptr != IntPtr.Zero)
    {
         DestroyWindow(ptr); //查找到窗口则关闭
    }
    //继续执行其它代码...
    一直到执行结束..但是结束会,程序会执行到弹出MessageBox消息框的下面的代码(我也不知道怎么回事)所以给用户看到是,主窗体没什么反映.所以.要在MessageBox消息框的下面的代码里添加上一个判断,看是否执行了关闭窗口的操作..根据其操作.自己规定程序跳到什么地方(是否执行了关闭窗口的操作:这里可用一个全局变量的标示位,当然也其它的信息...)
  • 相关阅读:
    BZOJ5308 ZJOI2018胖
    BZOJ5298 CQOI2018交错序列(动态规划+矩阵快速幂)
    423. Reconstruct Original Digits from English
    422. Valid Word Square
    277. Find the Celebrity
    419. Battleships in a Board
    414. Third Maximum Number
    413. Arithmetic Slices
    412. Fizz Buzz
    285. Inorder Successor in BST
  • 原文地址:https://www.cnblogs.com/MayGarden/p/1582438.html
Copyright © 2020-2023  润新知