111,120
社区成员
发帖
与我相关
我的任务
分享
private void button7_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 60 ; i++)
{
PictureBox pb = this.Controls["pictureBox" + i] as PictureBox;
if(pb != null )
{
pb.Click += new EventHandler(pb_Click);
}
}
}
void pb_Click(object sender, EventArgs e)
{
PictureBox P = (PictureBox)sender;
MessageBox.Show(P.Name);
switch (P.Name)
{
case "pictureBox1":
this.Text = "1";
break;
case "pictureBox2":
this.Text = "2";
break;
//...
default:
this.Text =P.Name.Substring(10);
break;
}
}
C#
private void Form1_Load(object sender, EventArgs e)
{
//控件数组功能
for (int i = 0; i < panel1.Controls.Count; i++)
{
panel1.Controls[i].Click += new System.EventHandler(this.btn_Click);
}
}
private void btn_Click(object sender, System.EventArgs e)
{
Button btn = (Button)sender;
btn.Text = "Change";
}
VB.NET
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.AddEvent()
End Sub
Private Sub AddEvent()
For i As Integer = 0 To Panel1.Controls.Count - 1
AddHandler Panel1.Controls(i).Click, AddressOf Me.btn_Click
Next
End Sub
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show(CType(sender, Button).Text & " was clicked.")
End Sub
或者
多个按钮可以触发同一事件,不必逐个添加。
Private Sub bt10_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt10.MouseClick, bt11.MouseClick, bt12.MouseClick, bt13.MouseClick, bt14.MouseClick, bt15.MouseClick, bt16.MouseClick, bt17.MouseClick, bt18.MouseClick, bt19.MouseClick, bt37.MouseClick, bt38.MouseClick, bt42.MouseClick
If e.Button = Windows.Forms.MouseButtons.Left Then
ContextMenuStrip1.Show(MousePosition)
End If
End Sub
PictureBox[] pictureBoxes=new PictureBox[]{pictureBox1,pictureBox2....};