vb TableLayoutPanel - 单击按钮旁边的“获取”按钮

时间:2016-10-23 19:16:19

标签: vb.net

我创建了一个简单的TableLayoutPanel(6乘6),每个单元格中都有按钮。我有一个点击处理程序,只要按下任何按钮就会执行(在我的情况下,将按钮的颜色从红色变为绿色)

see eg.

但现在我需要更改单击按钮旁边按钮的颜色(例如,当我点击按钮2 3时,按钮3 3也会改变颜色)。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以将点击处理程序上的Sender参数转换为Control,然后使用它来确定点击控件的位置。然后,您可以使用该位置来计算对象控件并检索对它们的引用。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim ctrl As Control = TryCast(sender, Control)
    If ctrl IsNot Nothing Then
        Dim pos As TableLayoutPanelCellPosition = TableLayoutPanel1.GetCellPosition(ctrl)
        If pos.Row < (TableLayoutPanel1.RowCount - 1) Then
            Dim nextCtrl As Control = TableLayoutPanel1.GetControlFromPosition(pos.Column, pos.Row + 1)
            If nextCtrl IsNot Nothing Then
                ' do something with nextCtrl
                nextCtrl.BackColor = Color.Red
            End If
        End If
    End If
End Sub