tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルユーザーコントロールからFORMのサイズ変更
記事No5218
投稿日: 2007/03/27(Tue) 19:38
投稿者さと
XPProSP2
VB2003
で開発しております。

FORMを1枚作りユーザーコントロールとコントロール配列で画面を
作っているのですがFORM本体のサイズ変更(WidthやHeight)が出来
ないで困っています。

以下作ってみたソースになります。

'MENU.vb(フォームです)
Private Sub menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Add(objMenu)
End Sub

'ucMenu.vb(ユーザーコントロールです)
Private Sub ucMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objMenu As New menu
objMenu.Widht=100
objMenu.Height=200
End Sub

多分ユーザーコントロールでFORMを呼び出す時に既に間違っている気がするのですが
初心者な物で何処が間違っているのかよく分かりません。
そもそもユーザーコントロールからサイズ変更が出来るのかどうかすらも怪しいもので・・・
大変申し訳御座いませんが御教授頂けないでしょうか。

宜しくお願い致します。

[ツリー表示へ]
タイトルRe: ユーザーコントロールからFORMのサイズ変更
記事No5220
投稿日: 2007/03/28(Wed) 20:07
投稿者なおこ(・∀・)
お世話になります。

ユーザーコントロールから、ユーザーコントロール自身が張り付けられた
Form(以下、親 Form) の Width や Height をいじりたいという事でしょうか。

ユーザーコントロールのコードですが、
> Dim objMenu As New menu
ここで New されてしまってますんで、親 Form とは別物のインスタンスが出来てしまっています。

やりたいことを実装するには、
Me.Parent プロパティや Me.ParentForm プロパティを使って
親 Form に対する参照を取得する必要があります。

以下は例になります。

Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Me.ParentForm Is Nothing AndAlso _
       TypeOf Me.ParentForm Is Form1 Then
        Dim parentForm As Form1 = DirectCast(Me.Parent, Form1)
        parentForm.Width = 100
        parentForm.Height = 100
    End If
End Sub

[ツリー表示へ]
タイトルRe^2: ユーザーコントロールからFORMのサイズ変更
記事No5234
投稿日: 2007/03/30(Fri) 09:07
投稿者さと
なおこ(・∀・)様

御回答有難う御座います。
例を参考に作ってみたところ正常に動く事が出来ました。
有難う御座いました。
Newで親Formとは別の物になってしまっていたんですね・・

[ツリー表示へ]