需要解决一下两个问题之一:
1,两个窗体相互切换,先调用Hide()方法,再调用Show()方法,会出现切换时停顿的问题,如何解决?注:只能先Hide()后Show(),不能调过来;
2,两个窗体共用一个串口,窗体间切换时如果先Show()后Hide()的话,会出现串口冲突的问题,如何在Show后一个窗体前关闭前一个窗口的串口?注:关闭和打开串口放在VisibleChanged()事件里面。大家要是能解决第一个问题就最好,也最直接明了,谢谢!
1,两个窗体相互切换,先调用Hide()方法,再调用Show()方法,会出现切换时停顿的问题,如何解决?注:只能先Hide()后Show(),不能调过来;
2,两个窗体共用一个串口,窗体间切换时如果先Show()后Hide()的话,会出现串口冲突的问题,如何在Show后一个窗体前关闭前一个窗口的串口?注:关闭和打开串口放在VisibleChanged()事件里面。大家要是能解决第一个问题就最好,也最直接明了,谢谢!
解决方案 »
- 为什么CreateInstance会返回NULL?
- 如何邦定DropDownList1
- 关于自动编号,我的思路正确吗?
- 我要上机考小C编,那位大哥帮帮忙饿!!帮我做一下!!
- C#代码格式化问题
- 一个关于Remoting通道停止监听的问题。
- 如何在C#中控制导出的Excel文件的显示属性?
- DataAdapter 配置向导怎么添加存储过程?
- c# winform中 如何在另一个类中 修改form类中的控件
- How can I prevent the combobox from edting?
- sqlserver数据库转成access数据库问题!
- System.Media.SoundPlayer能否获取其状态?
补充:不是load的问题,大家可以建两个空白的窗体Form1,Form2;
Form1的Click事件:form2 f2=new form2();
f2.show();this.hide();
form2的Click事件:form1 f1=new form1();
this.hide();f1.show();
结果还是会出现第一个问题。最后,我不是想知道为什么出现这个问题,我是想知道如何解决这个问题。希望兄弟姐妹们帮帮忙,谢谢!
我的测试没有出现停顿。但窗体之间切换不应每次都new,而之前的隐藏。
那样资源消耗越来越大。
Form2 f2;
private void button1_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form2();
f2.Frm1 = this;
}
f2.Show();
this.Hide();
}//Form2中
Form1 f1 ;
public Form1 Frm1
{
set { f1 = value; }
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
f1.Show();
}
Form1.cs里
字段 Form frm2;
form1_load里
实例化frm2=new Form2();form1_click里
form2.show();this.hide();----------------------------------
Form2.cs里:
字段 Form _parent;
构造方法里把form1引用传进来:
public Form2(Form myparent)
{
_parent = myparent;
}form2_click()
{
_parent.Show();
this.Hide();
}
this.Hide();
f1.ShowDialog();
this.Close();
然后调用静态变量的show,hide
f2.show();this.hide();
form2的Click事件:form1 f1=new form1();
this.hide();f1.show();楼主应该固定form1和form2,你这样new下去
系统资源马上就被你用光了
不出问题才怪呢
一:
childForm.Show();
childForm.Hide();
二:
childForm.Hide();
childForm.Show();都会出现窗体闪烁,是因为窗体Show了之后,要进行窗体重绘,肯定会有闪烁,取决你的机器的性能,不然你拿个最低可以运行VS的配置试试,你即使只有childForm.Show();也可以出现闪烁,这是VS的问题,窗体重绘必然会有闪烁。
双倍缓冲:设置窗体的行为属性DoubleBufferd=true