C#在窗口建立了一组按钮button[n,n];怎么实现左键单击和右键单击获得该按钮在按钮组里的下标?
4个回答
展开全部
private Button[] n =new Button[100];
private void Form1_Load(object sender, System.EventArgs e)
{
int a=0;
int x=0,y=0;
for (a=0;a<=99;a++)
{
n[a] = new Button();
n[a].BackColor =Color.White;
n[a].FlatStyle = FlatStyle.Flat;
n[a].Width = panel1.Width / 10;
n[a].Left = x * n[a].Width;
n[a].Height = panel1.Height / 10;
n[a].Top = y * n[a].Height;
n[a].Name = "b" + a;
panel1.Controls.Add(n[a]);
panel1.Controls[a].MouseDown += new MouseEventHandler(this.ButtonArray_OnClick);
x += 1;
if (x == 10)
{
x = 0;
y += 1;
}
}
}
private void ButtonArray_OnClick(object sender, MouseEventArgs e)
{
MouseEventArgs arg=(MouseEventArgs)e;
Button b1=(Button)sender;
if (arg.Button==MouseButtons.Right )
b1.BackColor=Color.White ;
else
{
b1.Image=Image.FromFile("f:\\my documents\\my pictures\\elements\\regular_smile.gif");
//获得下标
int xiabiao=Convert.int32(b1.Name.substring(1));//思路是这样,具体你在程序中写一下
}
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
int a=0;
int x=0,y=0;
for (a=0;a<=99;a++)
{
n[a] = new Button();
n[a].BackColor =Color.White;
n[a].FlatStyle = FlatStyle.Flat;
n[a].Width = panel1.Width / 10;
n[a].Left = x * n[a].Width;
n[a].Height = panel1.Height / 10;
n[a].Top = y * n[a].Height;
n[a].Name = "b" + a;
panel1.Controls.Add(n[a]);
panel1.Controls[a].MouseDown += new MouseEventHandler(this.ButtonArray_OnClick);
x += 1;
if (x == 10)
{
x = 0;
y += 1;
}
}
}
private void ButtonArray_OnClick(object sender, MouseEventArgs e)
{
MouseEventArgs arg=(MouseEventArgs)e;
Button b1=(Button)sender;
if (arg.Button==MouseButtons.Right )
b1.BackColor=Color.White ;
else
{
b1.Image=Image.FromFile("f:\\my documents\\my pictures\\elements\\regular_smile.gif");
//获得下标
int xiabiao=Convert.int32(b1.Name.substring(1));//思路是这样,具体你在程序中写一下
}
}
}
展开全部
c# 没有控件数组的概念,是靠时间中的sender来区分
这个sender就是被点击的按钮对象。你可以在事件中取得这个对象根据其属性来区分是哪个按钮
如果想判断左键和右键要用mousedown事件 MouseEventArgs参数中有这个信息
这个sender就是被点击的按钮对象。你可以在事件中取得这个对象根据其属性来区分是哪个按钮
如果想判断左键和右键要用mousedown事件 MouseEventArgs参数中有这个信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要是我的话我会把按钮的名字就命名为b_n_n, 这样直接靠点击事件中的sender就能取到下标了,当然你写在tag里也行.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sender获取出来,然后到你的按钮组里去查找。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询