VS2003 Form 小问题!!!!
两个Form窗体,分别为Form1和Form2,在Form1上点击按钮btn1,显示Form2
我现在想实现“在Form2已经打开,并且最小化的时候,点击btn1,使Form2弹起来,不再是最小化形式”!!!
不知道各位 明白我的意思没有!!小弟这个问题着急!在线等!!!
------解决方案--------------------private Form2 frm2;
private void button1_Click(object sender, System.EventArgs e)
{
if(frm2 == null ||frm2.IsDisposed)
{
frm2 = new Form2();
}
if(frm2.WindowState == FormWindowState.Minimized)
{
frm2.WindowState = FormWindowState.Normal;
}
frm2.Show();
}
------解决方案--------------------樓上正解。
------解决方案--------------------其实真正的要打开一个最小化到任务栏的窗体应该用OpenIcon这个API:
bool OpenIcon(IntPtr hWnd);
用WindowState = FormWindowState.Normal
的原因应是因为在不用API的情况下的一个相似的操作,但实际上这两个的效果是不一样的.
因为一个OpenIcon可以正确的还原被最小化的那个窗体,比如原来是最大化的或正常的,那么OpenIcon后还会保持原来的状态,如果用WindowState这个属性,就会丢失原来的状态而只能是正常的样式(FormWindowState.Normal)窗口.