|
分類:[.NET 全般]
VB.net 2010でカメラのモニター画面を作成しようとして居ます。 カメラの数はシステムで異なるので、Newで必要画面分作成しようとして居ます。
先ずnewでデザイナーで作成したパネルにグループボックスを複数作成しました。 ここでグループボックスを作成しているのは、カメラの番号を表示したい為です。 これは成功して居ます。 このグループボックスに今度は画像を貼り付ける為にピクチャーボックスを作成するのに困っています。 先のグループボックスと同じ手法でデザイナーの上にピクチャーボックスをNewて゛作成し、BringToFront()で一番手前に持って来る事は成功しています。 ただ、この場合、ピクチャーボックスがグループボックスと同じ大きさに成り、グループボックスで作成したカメラ番号が見えなくなってしまいます。 一つとしては、ピクチャーボックスの高さを低くして、グループボックスのカメラ番号を見える様にする事ですが、プログラムとしては格好が良いものではありません。 先にNewで作ったグループボックスにピクチャーボックスをAdd出来れば、Dock機能で綺麗に目的を達成出来ると思います。 ただ、そのプログラムの仕方が分かりません。 何方か方法をお分かりに成る方、お教え下さい。 宜しくお願い致します。
注 このプログラムの前に下記のプログラムと同じ方法でグループボックスを作成してあります。
Me.pbxCamScr = New System.Windows.Forms.GroupBox(iCamNumUse) {} ' Dim i As Integer Dim iCamNum = 0 Dim bForFin As Boolean = False 'Outer loop braking flag For iVer As Integer = 0 To iCamNumVer - 1 For iHol As Integer = 0 To iCamNumHol - 1 'Make instance Me.pbxCamScr(iCamNum) = New System.Windows.Forms.GroupBox 'Add new GroupBox 'Set propaty Me.pbxCamScr(iCamNum).Name = "GroupBox" + iCamNum.ToString() 'Set group box name Me.pbxCamScr(iCamNum).Text = "Cam" + iCamNum.ToString() 'Set group box title Dim iWid As Integer Dim iHig As Integer iWid = pnlScrBrd.Width / iCamNumHol 'Calculate Group Box width iHig = pnlScrBrd.Height / iCamNumVer 'Calculate Group Box height Me.pbxCamScr(iCamNum).Size = New Size(iWid, iHig) 'Set Size Me.pbxCamScr(iCamNum).Location = New Point(iHol * iWid, iVer * iHig) 'Set location 'Add control to the Panel Me.pnlScrBrd.Controls.AddRange(pbxCamScr) 'これだと、グループボックス全領域に被ってしまう Me.ResumeLayout(False) iCamNum += 1 'Judge end of screen number If (iCamNum > iCamNumUse - 1) Then bForFin = True Exit For End If Next iHol If bForFin = True Then 'Exif also from outer for loop Exit For End If Next iVer
|