Member 13084733 Ответов: 2

Как установить свойства кнопки из другой формы


Привет я искал это в интернете но безуспешно
У меня есть две формы (Form1, Form2)
Form1 будет содержать Listbox1 и Item (например, Burger) Кнопки
Form2 будет содержать текстовые поля для установки свойств и значений кнопок Form1
Пример
TextBox1. text должен установить текст кнопки (название бургера)
TextBox2 должен установить значение кнопки (цена бургера)
TextBox3 должен установить изображение кнопки

и мне нужно создать новую кнопку из Form2 на Form1 конечно мне это понадобится всякий раз когда я открываю Form2 и мне нужно создать новую кнопку

Что я уже пробовал:

Я предполагаю, что мне понадобятся таблицы данных для этого, потому что мне нужно будет обновить, возможно, один раз цену или изображение
Для обновлений у меня может быть ComboBox в Form2 со списком элементов (кнопок)
Так что в принципе я знаю как вставить в базу данных но как установить это на кнопку и конечно как создать новую кнопку из Form2

Вы можете мне помочь с этим
Спасибо

2 Ответов

Рейтинг:
2

OriginalGriff

Не. Когда вы начинаете получать доступ к элементам управления в другой форме, вы блокируете их вместе и больше не можете изменять один из них, не рассматривая последствия для другого - элементы управления являются частными по какой-то причине, и эта причина заключается в том, чтобы предотвратить такого рода вещи, которые решительно противоречат принципам Упс.

Вместо этого Form2 создает событие (или несколько событий), которое он вызывает, когда хочет изменить Form1, и Form1 обрабатывает эти события, используя свойства Form2 для доступа к пересмотренной информации.
Возможно, "BurgerSelected", "PriceChanged" или подобный будет хорошо?

Это звучит сложно, но на самом деле это не так, и это делает ваш код намного более читаемым и обслуживаемым.
Взгляните на это: Передача информации между двумя формами, Часть 2: Ребенок-Родитель[^]- он включает в себя пример.


Member 13084733

хорошо, я не могу использовать родительский контроль, потому что эти две формы будут находиться на разных ПК, в основном мне понадобится только код и база данных. база данных для цен и изображений и на форме 2 текстовые поля для изменения или добавления этих значений

OriginalGriff

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

Member 13084733

Я уже понял, как я это создам, я буду использовать базу данных с расписанием для обновления и кнопку обновления, если это необходимо
но теперь у меня другая проблема
есть ли у вас какие-либо идеи, как загрузить текстовое изображение и значение до 50 кнопок из таблицы данных
я знаю, для запроса SELECT, но в нагрузку форму мне нужно создать запрос, который будет рядом :
выберите id 1, значение изображения и имя из таблицы
чтобы показать его на кнопке 1
и т. д. Для кнопки 2
А если у меня есть значение для кнопки 25 если не скрывать его

Рейтинг:
2

lukeer

Кнопки такие же, как и любой другой элемент управления. Они перечислены в Родительском списке. Управления коллекция. Их свойства могут быть установлены во время выполнения. Для этого дизайнер и создает код. Взгляните на свой файл Form1.designer.cs. Вот видите, как это делается. Но не меняйте код там, потому что любое последующее изменение в конструкторе перезапишет ваше изменение в коде.