程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> VB.NET設置控件和窗體的顯示級別 .,vb.net控件

VB.NET設置控件和窗體的顯示級別 .,vb.net控件

編輯:關於.NET

VB.NET設置控件和窗體的顯示級別 .,vb.net控件


前言:在用VB.NET開發射頻檢測系統ADS時,當激活已存在的目標MDI子窗體時,被其他子窗體遮住了,導致目標MDI子窗體不能顯示。

這個問題怎麼解決呢?網上看到一篇帖子VB.NET設置控件和窗體的顯示級別,總結得挺不錯的。現轉載過來,以備後用。

解決方案

1)使用Controls屬性將子窗體作為子控件顯示到Panel等的所有子控件最前方

有些控件可以作為容器使用如類似Panel、PictureBox等的控件,在向容器控件中加入其它控件時,這些子控件組合到一起成為一個控件集合,在這個控件集合中每個控件都有各自顯示的順序。下面我們拿Panel來舉例(其它容器控件的方法相同)。

為了顯示到Panel前我們可以使用Controls屬性,將子窗體作為Panel的子控件顯示。具體實現代碼如下:

Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.TopLevel = False
        frmMain.Panel1.Controls.Add(Me)
        frmMain.Panel1.Controls.SetChildIndex(Me, 0)
        frmMain.Show()
End Sub

上面的Add方法將frmQryBalance窗體作為子控件顯示到了Panel中,SetChildIndex方法是設置子窗體的顯示順序,0是將該窗體顯示到所有子控件最前方。

2)使用Parent屬性將子窗體作為子控件顯示到Panel等的所有子控件最前方

代碼如下:

Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     Me.MdiParent = frmMain
     Me.Parent = frmMain.Panel1
     Me.BringToFront()
     Me.Show()
End Sub

BringToFront是將控件移到 Z 順序的前面。BringToFront 不會使一個控件成為頂級控件。

與BringToFront方法相反的一個方法名為SendToBack方法。將控件移到 Z 順序的後面。如果控件為頂級控件,除非該控件為活動狀態,否則此方法將無法正確運行。 頂級控件是類似 Form 的控件,它不是另一個控件的子控件。 活動控件是具有輸入焦點的可見控件。 若要對非活動的頂級控件使用 SendToBack 方法,首先要對該控件調用 BringToFront 方法。

3)調用API方法SetParent

 在Visual Basic .Net中使用“平台調用”服務,申明Windows API函數主要有二種具體的實現方法:①使用DllImport特征類來申明Windows API函數。②使用“Declare”語句來申明Windows API函數。這兩種方法雖有異曲同工之效,但在繁簡上卻有很大差異,第一種方法申明過程比較復雜,很容易在申明Windows API函數時出錯,所以並不提倡。而第二種方法相對簡單,並且又保留了以前Visual Basic中的很多語法,所以大都使用這種方法來申明Windows API函數。

具體實現方法如下:

Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    setparent  me frmMain.Panel1
End Sub

參考鏈接:http://blog.csdn.net/zhang_xinxiu/article/details/8888510

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved