c#里怎么把图片编成数组

问题是有十七个picturebox和六个图片(1,2,3,4,5,10),十七个picture中的图片里的数字要按照一定的顺序排布,这个顺序要通过某种算法得到(与参数有关... 问题是有十七个picturebox和六个图片(1,2,3,4,5,10),十七个picture中的图片里的数字要按照一定的顺序排布,这个顺序要通过某种算法得到(与参数有关)算出的结果在一个数组a[17]中,那么我该怎么把对应的图片和picturebox对应起来呢
菜鸟求大神解答
展开
 我来答
阳光的雷咩咩
2013-12-05 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7777万
展开全部
        //using System.Linq;
        private void SetPic(int i)
        {
            //必须保证17个图片框的name属性都是形如pictureBox1,pictureBox2的形式
            //如果说处在其他容器比如panel中,则this.Controls改成 容器.Children
          PictureBox pi=  this.Controls.OfType<PictureBox>().First(p=>p.Name=="pictureBox" + i.ToString());
          pi.Image=//此处根据你的i写对应的值
        }
syht2000
高粉答主

2013-12-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部

生成picturebox的时候要动态添加,类似于下面的(当然我不清楚你具体的picturebox分布和计算规则,只是提供示例)

PictureBox[] pblist = new PictureBox[17];
int[] imgIndex = new int[] { 1, 2, 3, 4, 5, 10 };
private void Form1_Load(object sender, EventArgs e)//窗体的load事件
{
    for (int i = 0; i < pblist.Length; i++)
    {
        PictureBox pb = new PictureBox();//创建picturebox
        //picturebox属性设置
        pb.Name = "box" + i;
        pb.Tag = i;
        pb.Width = 100; pb.Height = 100;
        pb.Location = new Point(i * 110 + 10, 10);//位置请自行计算
        pb.BorderStyle = BorderStyle.Fixed3D;
        //按i或者其它值计算出对应的图像并加载
        //string filename=mypic(i);
        //pb.Image = Image.FromFile(filename);
        pb.Click +=new EventHandler(pb_Click);//单击事件,自行处理,如不需要可去除
        pblist[i] = pb;
    }
    Controls.AddRange(pblist);//将pblist添加至窗体显示
}
private void pb_Click(object sender, EventArgs e)
{
    if (sender is PictureBox)
    {
        PictureBox pb = (PictureBox)sender;
        int index = (int)pb.Tag;
        MessageBox.Show("picturebox----->" + index);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式