C#在窗口建立了一组按钮button[n,n];怎么实现左键单击和右键单击获得该按钮在按钮组里的下标?

 我来答
000___zb
2011-07-10 · TA获得超过6322个赞
知道小有建树答主
回答量:664
采纳率:50%
帮助的人:623万
展开全部
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));//思路是这样,具体你在程序中写一下

}

}

}
尚子素
2011-07-09 · TA获得超过600个赞
知道小有建树答主
回答量:566
采纳率:33%
帮助的人:196万
展开全部
c# 没有控件数组的概念,是靠时间中的sender来区分
这个sender就是被点击的按钮对象。你可以在事件中取得这个对象根据其属性来区分是哪个按钮
如果想判断左键和右键要用mousedown事件 MouseEventArgs参数中有这个信息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GoryWolf
2011-07-09 · TA获得超过315个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:215万
展开全部
要是我的话我会把按钮的名字就命名为b_n_n, 这样直接靠点击事件中的sender就能取到下标了,当然你写在tag里也行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e618f23
2011-07-10 · 超过75用户采纳过TA的回答
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:131万
展开全部
用sender获取出来,然后到你的按钮组里去查找。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式