向目标程序的窗口 SendMessage(/*目标窗口的Hanlde*/ hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
可以关闭MessageBox,连QT的MessageBox也可以可靠关闭!
向目标程序的窗口 SendMessage(/*目标窗口的Hanlde*/ hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
可以关闭MessageBox,连QT的MessageBox也可以可靠关闭!
发现在Form_Load事件中使用this.Hide();或者this.Visible = false;并不能隐藏主窗体启动。
查了一下网上的,发现在Form_Load事件中同时使用
this.Hide();
this.ShowInTaskbar = false;
就可以了实现启动时隐藏主窗体了!
不过这样有个缺点,就是用WindowHider恢复隐藏的窗体的时候,任务栏不会出现图标!
我的解决办法是在Shown事件里面隐藏窗体。
private void FormMain_Shown(object sender, EventArgs e)
{
this.Hide();
}
不过这样在启动程序的时候窗口会快速闪一下然后消失。
如果在窗口即将显示的时候把透明度设为0,隐藏后设回255不就解决了!?
好了,近乎完美的解决办法来了!
private void FormMain_Load(object sender, EventArgs e)
{
Opacity = 0;
}
private void FormMain_Shown(object sender, EventArgs e)
{
this.Hide();
Opacity = 0;
}
这样启动的时候是不会显示窗体的,使用WindowHider可以显示出来,并且任务栏上还有图标!
之所以说是近乎完美,体验一下你就知道了!
本文链接 http://www.shenyaocn.com/?p=85