tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 最後に
投稿日: 2006/07/11(Tue) 19:50
投稿者Ear
 るしぇさん、ありがとうございます。
おかげさまで値はとれるようになりました。

最後に、もう1点だけお願いします。

コントロール追加のボタンをクリックすると、FORMにボタンとラベルを10個動的に作成します。
(数は後々変動的に変わります)
そこで、例えば1番目のボタンをクリックするとFORM2に変わり、テキストボックスで入力した値を
1番目のボタンの横のラベルにセットしたいのです。
2番目なら、2番目のラベルにセット。
ButtonClickのイベントハンドラを作成しましたが、何番目のボタンをクリックしたのか
また動的に追加したラベルの名前をどう判断するのか
ご教授頂けないでしょうか?

少し長いですが、コードを記述します。

   '*******************************************************************************
    Private Sub btnAddControl_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnAddControl.Click
        Dim CtrlType1 As String
        Dim CtrlType2 As String
        CtrlType1 = "System.Windows.Forms.Label"
        CtrlType2 = "System.Windows.Forms.Button"
        For mintX = 1 To mintMAX
            Me.AddControl("myControl", CtrlType1, CtrlType2)
        Next mintX
    End Sub
    '*******************************************************************************
    Sub AddControl(ByVal ControlName As String, ByVal ControlType1 As String, ByVal
ControlType2 As String)
        Dim asm As [Assembly]
        asm = GetType(Form).Assembly
        ControlObject = asm.CreateInstance(ControlType1)
        ControlObject.Name = ControlName
        ControlObject.Location = New System.Drawing.Point(100, 30 * mintX)
        Me.Controls.Add(ControlObject)

        DynLabel = ControlObject
        DynLabel.Width = 250
        DynLabel.BackColor = Color.LightYellow
        DynLabel.Text = ""

        asm = GetType(Form).Assembly
        ControlObject = asm.CreateInstance(ControlType2)
        ControlObject.Name = ControlName
        ControlObject.Location = New System.Drawing.Point(30, 30 * mintX)
        Me.Controls.Add(ControlObject)

        DynButton = ControlObject
        DynButton.Width = 50
        DynButton.Text = "表示"
        AddHandler DynButton.Click, AddressOf ButtonClick
    End Sub
    '*******************************************************************************
    Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If f2 Is Nothing OrElse f2.IsDisposed Then
            f2 = New Form2
        End If
        f2.Show()
    End Sub
    '*******************************************************************************
    Private Sub f2_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles f2.Closing
        Me.Label1.Text = f2.MyForm2TextBox
    End Sub

大変、申し訳ありません。宜しくお願いします。

    

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。