成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net內(nèi)嵌窗體 vb中窗體是什么意思

使用VB.NET的五個(gè)技巧之窗體嵌套

NET框架組件太大了 比任何以前所寫的封裝功能的庫都要大 這樣有好處 因?yàn)樗蠓鳒p了建立應(yīng)用程序所需編寫的代碼 但是也使我們不可能完全了解該框架組件 但是我們很容易從中找到一些技巧

創(chuàng)新互聯(lián)專注于龍圩網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供龍圩營銷型網(wǎng)站建設(shè),龍圩網(wǎng)站制作、龍圩網(wǎng)頁設(shè)計(jì)、龍圩網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造龍圩網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍圩網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

窗體嵌套

經(jīng)驗(yàn)豐富的Visual Basic開發(fā)者知道多文檔界面(MDI)應(yīng)用程序能夠包含子窗體 那些子窗體由MDI父窗體管理 但是如果沒有MDI的能力你怎樣實(shí)現(xiàn)包含嵌套窗體?例如一個(gè)MDI子窗體也可能需要包含另一個(gè)窗體

有時(shí)能夠使用用戶控件(UserControl)實(shí)現(xiàn)這種功能 但是如果你真的需要把一個(gè)窗體嵌套進(jìn)另一個(gè)窗體 有多種方法可以實(shí)現(xiàn) 窗體衍生自Control類 這意味著它能被放入另一個(gè)窗體的控件集合中 使用如下的邏輯

Dim f As New frmEmbed ()Me Controls Add(f)f Show()

但是很不幸 這段代碼將會(huì)導(dǎo)致一個(gè)運(yùn)行時(shí)(runtime)異常(見圖 )

圖 試圖把一個(gè)窗體添加到另一個(gè)窗體的控件集合時(shí)出現(xiàn)的運(yùn)行時(shí)錯(cuò)誤

為了避免這種異常 該窗體的TopLevel屬性必須設(shè)置為False(見下面的代碼)

Dim f As New frmEmbed () f TopLevel = False Me Controls Add(f) f Show()

圖 顯示的是使用上面的邏輯實(shí)現(xiàn)的一個(gè)窗體嵌入另一個(gè)窗體 嵌入的窗體有一個(gè)標(biāo)題條(它的顏色是未激活的系統(tǒng)顏色) 因此該嵌入窗體能在容器窗體內(nèi)四處拖動(dòng) 在圖 中 該窗體從它的開始位置(左上角)拖到了右下角

圖 在容器窗體中有一個(gè)嵌入的窗體 嵌入的窗體能在容器窗體中拖動(dòng)

通常在顯示嵌入的窗體前先設(shè)置它的位置 這只需要簡單的設(shè)置嵌入窗體的Left和Top屬性 嵌入窗體的位置與容器窗體是相對(duì)的

與MDI子窗體不同 嵌入窗體能覆蓋容器窗體上的控件 圖 顯示了它們的不同

圖 嵌入窗體(左)可以覆蓋容器窗體上的控件 MDI子窗體(右)不能覆蓋MDI父窗體上的控件

在右邊的MDI例子中 沒有辦法使按鈕隱藏在子窗體的后面 但是在左邊該按鈕被嵌入窗體覆蓋了

當(dāng)窗體第一次被嵌入時(shí) 它將顯示在容器窗體上的已存在的控件的后面 當(dāng)它被點(diǎn)擊時(shí) 它走向前臺(tái)并停留在那兒 這會(huì)打擾用戶 但是能通過插入下面的代碼防止這種情況發(fā)生

f BringToFront()

嵌入的窗體可以包含其它的嵌入窗體 沒有實(shí)際的限制 圖 顯示了一個(gè)本身包含嵌入的窗體的嵌入窗體

lishixinzhi/Article/program/net/201311/12398

如何給VB.NET窗體添加子窗體?

直接添加一個(gè)MID父窗體或在已有窗體的屬性中找到IsMDIContainer屬性,然后設(shè)置為True,然后創(chuàng)建第二個(gè)窗體 ,需要加載子窗體的時(shí)候:

Dim NewMDIChild As New Form2

NewMDIChild.MdiParent = Me

NewMDIChild.Show()

Public?Shared?Sub?CheckMDIChildForm(ByVal?MDIForm?As?Windows.Forms.Form,?ByVal?MDIChildForm?As?Windows.Forms.Form,?ByVal?MDIChildFormName?As?String)

If?MDIForm.MdiChildren.Length??1?Then

'如果沒有任何一個(gè)MDI子窗體,則創(chuàng)該MDI子窗體的窗體實(shí)例

Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體

MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體

MDIChildFrm.Show()?'打開窗體

Exit?Sub

Else

Dim?x?As?Integer

Dim?frmyn?As?Boolean

For?x?=?0?To?(MDIForm.MdiChildren.Length)?-?1

Dim?tempChild?As?Windows.Forms.Form?=?CType(MDIForm.MdiChildren(x),?Windows.Forms.Form)

If?tempChild.Name?=?MDIChildFormName?Then

'檢測(cè)到有該MDI子窗體,設(shè)為激活?并退出循環(huán)

frmyn?=?True

tempChild.BringToFront()

Exit?For

Else

frmyn?=?False

End?If

Next

If?Not?frmyn?Then

'在打開的窗體中沒檢測(cè)到則新建

Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體

MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體

MDIChildFrm.Show()?'打開窗體

End?If

End?If

End?Sub

如何用VB.NET把執(zhí)行文件加到窗體中

加以一個(gè)panel用來顯示應(yīng)用程序的,就是放你那個(gè)easycap的,代碼如下

Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Int32, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Int32) As Int32

Private Const WM_SYSCOMMAND As Int32 = H112

Private Const SC_MAXIMIZE As Int32 = HF030

Private Const SC_MINIMIZE As Int32 = HF020

Private Const SC_RESTORE As Int32 = HF120

Public Const SW_HIDE = 0

Public Const SW_SHOW = 5

Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Int32, ByVal nCmdShow As Int32) As Int32

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

ShellExecute(Me.Panel1.Handle, "open", "c:\windows\system32\cmd.exe", Nothing, ".", SW_HIDE)

System.Threading.Thread.Sleep(50)

Dim h As IntPtr = FindWindow(Nothing, "c:\windows\system32\cmd.exe")

ShowWindow(h, SW_HIDE)

SetParent(h, Me.Panel1.Handle) '嵌到panel1內(nèi)

SendMessage(h, WM_SYSCOMMAND, SC_MAXIMIZE, 0)

End Sub

把其中的c:\windows\system32\cmd.exe換成你要嵌入的應(yīng)用程序

分享題目:vb.net內(nèi)嵌窗體 vb中窗體是什么意思
網(wǎng)站路徑:http://jinyejixie.com/article22/dophccc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、小程序開發(fā)網(wǎng)站內(nèi)鏈、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
图片| 德令哈市| 双桥区| 广南县| 马鞍山市| 榆社县| 涟水县| 县级市| 金秀| 玉田县| 柘城县| 仁寿县| 武山县| 咸阳市| 赞皇县| 榆林市| 稻城县| 凌云县| 柘城县| 玉田县| 外汇| 西畴县| 龙游县| 耿马| 隆回县| 宁安市| 宁明县| 阿拉善左旗| 辽源市| 清水河县| 达孜县| 阳原县| 洛南县| 平顺县| 宿州市| 屯昌县| 潮安县| 南投县| 南皮县| 永春县| 南京市|