瞬間教會你建立VS2003窗口的全部內容
本文講述VS2003窗口的建立和創建。這些內容都是我今天花花了一周的時間查閱資料并像IT精英學習出來的,中間可能有不少錯誤是我沒有挑出的,歡迎大家指正。網上論壇上也有相關內容。
VS2003窗口這個問題的根本原因是由于IE控件在處理隱藏消息時會將自己由系統中刪除掉。解決的辦法是:#t#
在改變控件父窗口的MdiParent屬性之前將IE控件由該窗口的Controls集合中去掉,在改變之后再將IE控件添加到集合中 VS2003中MdiParent屬性變化時會導致IE控件被摧毀掉,而不會重新生成。VS2005雖然也會被摧毀,不過控件會正確被重新創建
- private void button2_Click(object sender, System.EventArgs e)
- {
- if(m_frmOwner == null)
- m_frmOwner = this.MdiParent;
- Controls.Remove(this.axWebBrowser1);
- Visible = false;
- if(this.MdiParent == null)
- this.MdiParent = m_frmOwner;
- else
- {
- Point pos;
- pos = PointToScreen(Location);
- this.MdiParent = null;
- this.Location = pos;
- }
- Visible = true;
- Controls.Add(this.axWebBrowser1);
- }
重載VS2003窗口的OnVisibleChanged()方法 無論是VS2003還是VS2005,當改變IE控件的顯示屬性時,控件會被系統除去,而不會重新生成。對于VS2003來說,如果是改變MdiParent屬性的話,也必須重載這個方法,否則在控件重新加入到窗口的集合中時,窗口在進行控件消息遍歷時,會有問題。
- protected override void OnVisibleChanged(EventArgs e)
- {
- foreach(Control obj in Controls)
- obj.Visible = this.Visible;
- }