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