1

一連のボタンがあるものを作ろうとしています。各ボタンがクリックされると、その横にボタンのヒット数を記録するラベルが表示されます。

次に、そのコレクションから最大の整数を取得できます (ボタンがクリックされた最大回数)。最も頻繁に使用されるボタンを表示するリストボックスに項目を自動的に追加できるように、最も高い番号を最もクリックされたボタンに関連付ける方法について混乱しています。

//////--Code to import the greatest integer of all the collection (clicked more times)---

`Private Sub Button1_Click_2(ByVal sender As System.Object, ByVal e As `enter code here`System.EventArgs) Handles Button1.Click
1.  Dim nums() As Integer = {x1.Text, x2.Text, x3.Text, x4.Text, x5.text}
2.     Dim qry = From n As Integer In nums Order By n Descending
3.        For Each n As Integer In qry
4.            listbox1.Items.Add(n)
5.  Next
6. End Sub`


//////---code to get the single number which was greater than every other in the collection///-

`Private Sub Button2_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
1. Dim nums() As Integer = {x1.Text, x2.Text, x3.Text, x4.Text, x5.text}
2. Dim qry = From n As Integer In nums Order By n Descending
3.        Dim res As Integer = nums.Max.ToString
4.        For Each i As Integer In nums
5.            If i > res Then res = i
6.            Label120.Text = res.ToString
7.        Next
8.        Return
9. End Sub`
4

2 に答える 2

0

最初に行うことは、ボタン (btnABC01、btnABC02、btnABC03 など) とラベル (lblABC01、lblABC02、lblABC03) の共通の命名パターンを決定することです。そして、すべてのラベルを初期値 0 に設定します。

次に、ボタンに共通のクリック イベント ハンドラーを宣言し、Form.Load イベント ハンドラーで AddHandler メソッドを使用して、そのハンドラーを各ボタンに割り当てます。

For Each b as Button In Me.Controls.OfType(Of Button)
    If b.Name.Contains("ABC") Then
        AddHandler b.Click, AddressOf Button_Click
    End If
Next

ここで、クリック イベント ハンドラーで、クリックされたボタンと同じ一時的なボタンを宣言します( Dim ClickedButton As Button = DirectCast(sender, Button))。対応するラベルで同じことを行い、その値を増やします

Private Sub Button_Click(sender As Object, e As EventArgs)
    Dim ClickedButton As Button = DirectCast(sender, Button)
    Dim LabelToSet As Label = DirectCast(Me.Controls("lblABC" + CilckedButton.Name.Substring(ClickedButton.Name.Length - 2)), Label)
    LabelToSet.Text = (Val(LabelToSet.Text) + 1).ToString
End Sub

次にMe.Controls.OfType(Of Label).Max、番号が最大のラベルを見つける必要があります

于 2013-08-03T23:20:31.187 に答える