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

Так вот моя ситуация.Я разрабатываю программу, которая требует создания новых объектов Image в режиме реального времени на Canvas, когда пользователь нажимает определенную кнопку.Поскольку я точно не знаю, сколько из упомянутых изображений создаст какой-либо пользователь, я не могу назначать имена в коде для каждого из них.Изображения должны иметь имена «Image0», «Image1», «Image2» и т. Д., В зависимости от того, сколько изображений уже существует на странице.Что-то вроде того, как работает сама Visual Studio, когда каждый раз, когда вы помещаете элемент управления в представление конструктора, он автоматически добавляет число к имени элемента управления.

Есть ли у кого-нибудь фрагмент кода, способный выполнять эту функцию?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2011

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

Создание приложения для Windows с помощью одной кнопки и панели FlowLayout.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        int i = 1;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var button = new Button { Text = string.Format("Button {0}", i) };
            button.Click += new EventHandler(button_Click);
            flowLayoutPanel1.Controls.Add(button);
            i += 1;
        }

        void button_Click(object sender, EventArgs e)
        {
            Button button = (Button)sender;
            button.Text = " clicked!";
        }
    }
}
0 голосов
/ 18 февраля 2011

У меня нет прямого ответа на ваш вопрос, но по звукам его, и я могу ошибаться, потому что я не знаю, что вы пытаетесь сделать, вы просматриваете проблему от новичкаПерспектива программиста.Возможно, вы захотите использовать какую-нибудь коллекцию (возможно, список) и динамически добавлять к ней объекты изображения.Если вам нужно имя строки, связанное с каждым объектом, вы можете рассмотреть словарь типа Dictionary<string,Image>

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