如何使用数字上下调更改多个面板图像?

时间:2015-01-12 19:55:55

标签: vb.net

我有超过100个面板在标签控件中滚动。我有一个代码,用于更改面板背景图像和打开文件对话框,我还有一个数字向上控制,让我按数字选择我想要更改的面板图像。

Try
    If NumericUpDown1.Value = 2 Then
        If OpenFileDialog1.FileName <> "" Then
            Panel5.BackgroundImage = New Bitmap(OpenFileDialog1.FileName)
        End If
    End If
Catch ex as exception
finally
End Try 

我不想继续为所有面板编写代码,因为它们超过100个面板,有没有人知道如何以更短的方式实现这一点,也许是对于每个面板。可能有用的代码。

1 个答案:

答案 0 :(得分:0)

假设您想要将图像设置为当时只有一个图片框,而不是为所有图像框编写代码。

Class MyForm
    Inherits Form

    private _selectedPanel as Panel

    Public Sub New()


        ' here wire handler
        Dim p as Panel
        For Each c as control in Me.Controls
            pb = TryCast(c, Panel)
            If p IsNot Nothing Then
                AddHandler p.Click,  AddressOf Panel_Click 
        next
    End Sub

    Private Sub Panel_Click(sender as Object, e as EventArgs)
         _selectedPanel = DirectCast(sender, Panel)

    End Sub


    Private Sub SomeMethod()


       Try
           If NumericUpDown1.Value = 2 Then
               If OpenFileDialog1.FileName <> "" Then
                   _selectedPanel.BackgroundImage = New Bitmap(OpenFileDialog1.FileName)
               End If
           End If
       Catch ex as exception
            MessageBox.Show("oops:" & ex.Message)
       End Try 


   End Sub

End Class

这样,您点击要更改图像的面板,然后单击上/下来执行此操作。

现在,您如何标记活动面板 - 这是另一个问题。您可以使用隐藏控件(例如复选框),该控件可以显示在面板的一角以检查或取消选中一个。我不知道你是否需要它。