日期:2014-05-20  浏览次数:20845 次

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)窗口.