掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
こんなことできないでしょうか? (ID:90434)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ん〜!このコードではコンパイルは通りません。(^^; 元のコードをコピペした後に修正をしましたね。 >イベントを拾うのにIF文を31個書きました。 If文では無くてこのような場合は、Select Case文なのでは。 まあそれはそれとして、PTextBoxes_TextChangedの引数senderには、イベント発生元の オブジェクトが渡されて来ますから、ちょっと工夫して、送り先の pTextBoxのTagに 配列のインデックス番号を仕込んで置きます。(名前に仕込んであるのでそれを使う手もある。) こうすると hTextBox.Tagで配列のインデックス番号が取得出来、TextBoxをオブジェクトの 配列にし、共通のイベントハンドラーを使う効果が出ます。 ざざっと直すと、こんな感じ、もちろん細かいところは見てません。 Private pTextBox(30) As System.Windows.Forms.TextBox Private pChStr(30) As String Dim fontF As New Font("MS UI Gothic", 9) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 0 To 30 pTextBox(i) = New TextBox With pTextBox(i) .Name = "pTextBox" & (i + 1).ToString() .Font = fontF .Text = pChStr(i) .Width = 150 .Height = 23 .Tag = i 'タグで配列のインデックスを取得 .Left = 50 .Top = 20 + (i * 28) AddHandler .TextChanged, AddressOf PTextBoxes_TextChanged End With Me.Controls.Add(pTextBox(i)) Next End Sub Private Sub PTextBoxes_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim hTextBox As TextBox = DirectCast(sender, TextBox) pChStr(hTextBox.Tag) = pTextBox(hTextBox.Tag).Text End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.