我有超过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个面板,有没有人知道如何以更短的方式实现这一点,也许是对于每个面板。可能有用的代码。
答案 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
这样,您点击要更改图像的面板,然后单击上/下来执行此操作。
现在,您如何标记活动面板 - 这是另一个问题。您可以使用隐藏控件(例如复选框),该控件可以显示在面板的一角以检查或取消选中一个。我不知道你是否需要它。