2017-10-13 1 views
0

実行時にフォーム、テキストボックス、ボタンを作成していますが、ボタンのクリックイベント(以下のコード)にイベントハンドラを追加しようとすると問題が発生します。私はインライン関数が行く方法かもしれないと思うが、私はこれらを大量に使用せず、C#で書かれた例を見ているが、これをvb.netに変換することはできなかっただろう。 。ダイナミックフォームでダイナミックボタンを作成する

このアプローチをとって私が推論しているのは、これを行う方法を学ぶことだけです。私はウィンドウフォームを作成してそのように行いますが、新しいものを試してみるのは常に良いことです。私のコードの批判を受け入れることを望んでいますが、今までのように建設的にしてください。

 Dim CommandButton As New Button 
     With CommandButton 
      .Text = "Submit" 
      .Name = "btnComments" 
      .Location = New Point(232, 110) 
      .Font = New Font("Tahoma", 12) 
      .Size = New System.Drawing.Size(130, 32) 
     End With 

     Dim TextBox As New TextBox 
     With TextBox 
      .Name = "CommentsText" 
      .Location = New Point(20, 20) 
      .Size = New System.Drawing.Size(342, 80) 
      .Multiline = True 
      .BackColor = Color.Snow 
     End With 

     Dim CommentsForm As New Windows.Forms.Form 
     With CommentsForm 
      .StartPosition = FormStartPosition.CenterParent 
      .Height = 195 
      .Width = 400 
      .Text = "Enter despatch comments for " & Me.ReferenceValue 
      .Controls.Add(TextBox) 
      .Controls.Add(CommandButton) 
      .MaximizeBox = False 
      .MinimizeBox = False 
      .FormBorderStyle = FormBorderStyle.FixedDialog 
      .ShowDialog() 
     End With 
+0

はこの https://stackoverflow.com/questions/7375061/dynamic-button-click-event-をお試しくださいハンドラ –

+0

これらは、私が間違っていない限りフォームオブジェクトが既に存在する場所からのものであるように見えます。 –

答えて

0

ハンドラーをコントロールに動的に追加するには、AddHandler yourControlName.eventToHandle, AddressOf handlingMethodを使用します。

+0

もう一度、そのポイントがありません。フォームが存在しないため、AddressOfを使用して参照できるイベントはありません。コントロールとフォームの両方が動的です。 –

0

AddHandlerを使用して、任意のイベントのハンドラを追加できます。

たとえば、これは次のようになります。

AddHandlerのtheButton.Click、のAddressOf Me.theButton_Click

関連する問題