динамически настраивать расположение изображения во время выполнения? - PullRequest
0 голосов
/ 28 марта 2011

Здесь я хочу установить расположение изображения следующим образом:

pic1.ImageLocation = "";
pic2.ImageLocation = "";

и так далее ...

foreach (ImageResult result in response.Image.Results)
{
    i++;
    PictureBox thumnailBox = new System.Windows.Forms.PictureBox();
    thumnailBox.Name = "pic" + i.ToString();
    //HOW TO DO ??
    //thumnailBox.ImageLocation = result.Thumbnail.Url;
    //listView1.Items.Add(thumnailBox.Name);                     
}

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Я вижу, что вы хотите сделать, вы хотите, чтобы каждое изображение отображалось в виде списка?

Вам необходимо добавить элемент управления списком изображений, чтобы сохранить все изображения, а затем связать каждый элемент списка с сохраненным изображением..

    // add imagelist and listview controls
    ImageList imglist = new ImageList( this.components);
    ListView lst = new ListView();
    lst.LargeImageList = imglist;
    this.Controls.Add(lst);

Настраивает необходимые элементы управления.Затем в цикле загрузите изображение в список изображений, дайте ему ключ и используйте этот ключ в элементе списка:

    for (int i = 0; i < 0; i++)
    {
        imglist.images.add(image.fromfile("the-filename.jpg"));
        listviewitem itm = new listviewitem();
        string key = string.format("pic{0}", i);
        itm.text = key;
        itm.imagekey = key;
        lst.items.add(itm);
    }

Это псевдокод, конечно, он не будет скомпилирован какесть, но вы поняли?

0 голосов
/ 28 марта 2011

Ваша проблема в том, что вы, вероятно, создаете все свои графические блоки поверх друг друга.Вам необходимо установить фактическое местоположение ваших PictureBox (и, вероятно, их размеры) таким образом, чтобы они не полностью или частично не перекрывали друг друга.

Это можно сделать с помощью кода thumbnailBox.Location = new Point(x,y);, где xи y являются целыми числами.

Как уже упоминалось ранее, не забудьте также изменить thumbnailBox.Size.

Обновление : Другая проблема может заключаться в том, что вам нужносоздайте массив PictureBoxes, выполнив:

PictureBox[] thumbnailBoxes = new PictureBox[numPics];

и выполните итерации по ним при настройке их изображений и местоположений.

Затем, вне вашего цикла, вы добавляете весь массив к элементам управления, выполняя Controls.AddRange(thumbnailBoxes);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...