Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取索引_C#_Arrays_Picturebox_Indexof - Fatal编程技术网

C# 如何获取索引

C# 如何获取索引,c#,arrays,picturebox,indexof,C#,Arrays,Picturebox,Indexof,对于一个学校项目,我要做一个桌子预订系统, 我做了以下(只是一小部分) 我选择了pictureboxes来表示表格,默认的背景色为白色,当鼠标进入背景色时,背景色变为绿色 当您单击其中一个图片框es myreservationForm将打开时,您可以在此处进一步填写详细信息以预订表格 但我现在陷入困境的部分是,我不知道我在预订表上单击了哪个PictureBox,所以我需要获取类似PictureBox数组的索引 如何解决此问题?检查发件人 private void mouseClick(objec

对于一个学校项目,我要做一个桌子预订系统, 我做了以下(只是一小部分)

我选择了pictureboxes来表示表格,默认的
背景色为白色,当鼠标进入
背景色时,背景色变为绿色

当您单击其中一个
图片框
es my
reservationForm
将打开时,您可以在此处进一步填写详细信息以预订表格

但我现在陷入困境的部分是,我不知道我在预订表上单击了哪个
PictureBox
,所以我需要获取类似
PictureBox
数组的索引

如何解决此问题?

检查发件人

private void mouseClick(object sender, EventArgs e)
{
    PicterBox pb = (PicterBox)sender;
    ...
}
你知道怎么做!:)

您已经在
mouseOn
事件处理程序上正确执行了该操作。只需对
sender
参数执行相同的强制转换

private void mouseClick(object sender, EventArgs e)
{
    PictureBox clickedBox = (PictureBox)sender;

    reservationForm rf = new reservationForm();
    rf.ShowDialog();
}
如果需要索引,可以使用
Array.IndexOf
,前提是
pb
数组是类级变量而不是本地方法

int index = Array.IndexOf(pb, clickedBox);
在“鼠标”中,您已经使用
(PictureBox)sender
获取对PictureBox的引用。 然后,您可以遍历数组,将特定索引处的picturebox与单击的picturebox进行比较。当您有一个匹配项时,您就找到了索引

var clicked = (PictureBox)sender;
int index = 0;
while (index < pb.Length && pb[index] != clicked) index = index+1;
// now index is either 70 (if not found) or the position you want (0..69)
var clicked=(PictureBox)发送方;
int指数=0;
而(index
也许你可以在每个图片框的对应索引处为循环设置一个名称。所以在监听器中你可以使用

PicterBox pb=(PicterBox)发送器


并获取作为索引的名称

你有很多选择。我将提出其中一些建议:

  • 创建一个公共类变量或属性,并将当前选定的Picturebox存储在click事件上,以便您可以从表单访问它
  • 为表单的构造函数传入Picturebox(创建接受此信息并将其存储在内部变量中的构造函数)

但现在我想从picturebox数组中获取索引,我似乎无法实现这一点。
var clicked = (PictureBox)sender;
int index = 0;
while (index < pb.Length && pb[index] != clicked) index = index+1;
// now index is either 70 (if not found) or the position you want (0..69)