タイトル | : 最後に |
記事No | : 3965 |
投稿日 | : 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
大変、申し訳ありません。宜しくお願いします。
|