Вы уже (кажется, успешно) сумели динамически создать новые PictureBox
элементы управления, добавить их в форму и также показать их имя в ComboBox
.
Когда вы нажимаете кнопку, вам как-то нужно «перейти» от выбранного элемента в ComboBox
к PictureBox
. Один простой способ добиться этого - использовать тот факт, что список в ComboBox
принимает любой объект, а не только строки. Таким образом, вместо добавления pb.Name
к ComboBox
, вы можете добавить pb
сам. Это создаст одну маленькую проблему; вместо имени графического блока в поле со списком теперь будет отображаться System.Windows.Forms.PictureBox
. Это можно исправить, установив свойство DisplayMember
для ComboBox
(это свойство сообщает ComboBox
, какое значение свойства нужно извлечь из каждого объекта и использовать для отображения):
Итак, вы можете установить свойство DisplayMember
в конструкторе Form1
:
public Form1()
{
InitializeComponent();
comboBox1.DisplayMember = "Name"; // use the Name property from items
// in the list when displaying them
}
Затем при создании элементов управления PictureBox
добавьте их к ComboBox
:
comboBox1.Items.Add(pb);
Теперь вы можете легко получить ссылку PictureBox
из ComboBox
в button2_Click
:
private void button2_Click(object sender, EventArgs e)
{
PictureBox selectedPictureBox = comboBox1.SelectedItem as PictureBox;
if (selectedPictureBox != null)
{
// use selectedPictureBox to set the appropriate property values
}
}