对于每个循环C#Windows窗体,相同的按钮单击事件
见下面的代码:对于每个循环C#Windows窗体,相同的按钮单击事件,c#,windows,forms,foreach,C#,Windows,Forms,Foreach,见下面的代码: private void opc(object sender, EventArgs e) { //NOTE: buttons 13-16 share same click event // needs for each loop button13.Enabled = false; button14.Enabled = false; button15.Enabled = false; button16.Enabled = fals
private void opc(object sender, EventArgs e)
{
//NOTE: buttons 13-16 share same click event
// needs for each loop
button13.Enabled = false;
button14.Enabled = false;
button15.Enabled = false;
button16.Enabled = false;
}
你想让任务人进入一个循环?具有静态定义的按钮名称,这在AFAIK中是不可能的。首先应将按钮放入数组或集合中:
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.button13.Click += new System.EventHandler(this.button_Click);
this.button14.Click += new System.EventHandler(this.button_Click);
this.button15.Click += new System.EventHandler(this.button_Click);
this.button16.Click += new System.EventHandler(this.button_Click);
}
private void button_Click(object sender, EventArgs e)
{
Button button = sender as Button;
string name = button.Text;
}
}
}
Button[]Button=新按钮[numberOfButtons];
对于(inti=0;i你可以试试这个
Button[] button = new Button[numberOfButtons];
for (int i=0; i<numberOfButtons; i++)
{
button[i] = new Button();
button[i].Click += new System.EventHandler(WhateverYouLike);
// ... some other property assignments, probably also rule-based
}
// ... and at a later time:
for (int i=0; i<numberOfButtons; i++) button[i].Enabled = false;
private void opc(对象发送方,事件参数e)
{
对于(int i=13;i 0)
{
按钮btn=(按钮[0]作为按钮);
点击+=btn\U点击;
btn.Enabled=true;//或false
}
}
}
无效btn_单击(对象发送者,事件参数e)
{
MessageBox.Show((发送者为按钮).Name);
}
请添加更多关于您所问问题的信息。是否希望一个按钮禁用所有按钮?是否希望所有按钮仅禁用其自身?
private void opc(object sender, EventArgs e)
{
for (int i = 13; i <= 16; i++)
{
Control[] buttons = this.Controls.Find(String.Format("button{0}", i), false);
if (buttons.Length > 0)
{
Button btn = (buttons[0] as Button);
btn.Click += btn_Click;
btn.Enabled = true; // or false
}
}
}
void btn_Click(object sender, EventArgs e)
{
MessageBox.Show((sender as Button).Name);
}