Я довольно новичок в C# (и вообще программировании), поэтому придерживайтесь меня, если я совершу огромные ошибки или расскажу о полном быке. Так что я пытаюсь сделать, это иметь частную пустоту, которая изменяет размер фонового изображения кнопки. Я посылаю имя кнопки в частную пустоту через строку. Во всяком случае, код выглядит примерно так:Объявление нового объекта с помощью имени переменной
ButtonResize("Zwaard");
protected void ButtonResize(string Button)
{
string ButNaam = "btn" + Button;
Button Butnaam = new Button();
Butnaam.Text = ButNaam;
if (Butnaam.BackgroundImage == null)
{
return;
}
else
{
var bm = new Bitmap(Butnaam.BackgroundImage, new Size(Butnaam.Width, Butnaam.Height));
Butnaam.BackgroundImage = bm;
}
}
Но это не работает. Кажется, я не могу найти способ объявить новый объект с именем, которое имеет значение в строке. То, что я хочу, чтобы мой код выполнял, - это вместо кнопки «Бутнам», я хочу, чтобы она создала кнопку btnZwaard (значение строки Butnaam).
Как сообщить C# Я хочу, чтобы значение переменной было именем новой кнопки, а не буквально, что я набираю?
Заранее спасибо.
Есть, вероятно, способы сделать что-то подобное с помощью отражения, но этого не делают. Это плохая идея. Создайте один объект словаря, который отображает имена в объекты и использует ваше динамически созданное имя в качестве словарного ключа, а не как имя переменной. –
Вы действительно хотите создать новую кнопку каждый раз? Если это сработает, это будет ваш текущий код. – Maess
Ну, на самом деле нет, но я не могу получить доступ к свойствам моей желаемой кнопки из защищенной пустоты, поэтому я решил, что мне просто нужно создать объект с именем тот же, присоединяется к его свойствам, и это изменится для моей исходной кнопки а также .. если вы получите мой дрейф. Я, вероятно, просто переусердствовал. То, что я хочу, чтобы этот фрагмент кода действительно менял размер моего фонового изображения нужной кнопки (из которой я отправляю имя) – Glenn