Как создать массив кнопок C#?
Как создать массив кнопок в приложении WinForms?
то, что я пытаюсь сделать, это: у меня есть много кнопок в своего рода календарь, который показывает время. IE: Monday0700Button, Monday0730Button, Monday0800Button, и так далее в интервалах 30min.
у меня есть база данных xml, где одним из полей для встреч является когда продолжительность = 0.5 hrs, и поле равно «07: 00am», чтобы цвет ‘Monday0700Button’. Когда продолжительность 1.0 hrs, я хочу, чтобы он заполнял «Monday0700Button», а также следующую кнопку временного слота «Monday0730Button».
какие идеи? Спасибо.
5 ответов
Да, вы можете создать список кнопок, как показано ниже.
Да, нет проблем с построением массива кнопок или любого объекта. Вы не сможете увидеть их в конструкторе Visual studio, но они будут работать нормально.
давным-давно я использовал 2-D массив кнопок для создания пользовательского интерфейса для приложения калькулятора. Я долгое время использовал HP-15C и пропустил его.
подход массива работал нормально.
Да, определенно возможно, но, вероятно, ненужно.
Если я правильно вас понимаю, вы должны иметь возможность добавить FlowLayoutPanel в форму, а затем цикл через XML, создавая экземпляр новой кнопки, по мере необходимости. Подключите обработчик событий для события Click, затем добавьте кнопку в FlowLayoutPanel, вызвав метод Add () из свойства Controls в FlowLayoutPanel.
пока FlowLayoutPanel делает его легким к сделайте макет для своих кнопок, это может не сработать для вас. Если это так, вам нужно будет разработать координаты X и Y для ваших кнопок, когда вы просматриваете XML.
одна проблема, с которой вы столкнетесь с вышеуказанным подходом, заключается в том, что он всегда вызывает один и тот же обработчик событий. В результате, вам придется придумать способ, чтобы определить, какая кнопка была нажата. Одним из подходов может быть расширение элемента управления Button для предоставления дополнительных свойств, которые могут быть используется для подтверждения периода времени.
кнопки, как и все элементы GUI, являются объектами, как и любые другие (которые также могут отображаться). Так что да, у вас могут быть массивы, списки, словари — все, что вы хотите, содержащие кнопки. ответ имеет некоторый пример кода.
Да, это возможно,как продемонстрировал Тейлор л. Единственная загвоздка в том, что массивы управления в стиле VB6, созданные путем копирования и вставки элемента управления, больше не могут быть выполнены в Редакторе форм.
Массив кнопок
Массив для нескольких кнопок
День добрый, имеется несколько кнопок выполняющих разные действия. Вопрос заключается вот в чем -.
Как проще инициализировать массив кнопок?
всем доброго времени суток! Пишу программу и у меня возник вопрос, а точнее неудобство: есть 50.
Массив кнопок: Определить на какую кнопку нажимает пользователь
Добрый день! очень нужна помощь совсем новичку:-namespace WindowsFormsApplication1 < public.
Создать массив кнопок, для каждой кнопок будет одинаковый обработчик
Всем привет! Нужна помощь в реализации такой задачи. Нужно создать массив кнопок, для каждой.
недавно возился с динамически создаваемыми кнопками, посмотри тему как мне для кнопок создать обработчик там 3 страницы, может что и пригодится.
Добавлено через 3 минуты
кстати насчет индекса
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Массив кнопок, перемещение кнопок
По клику на button1 вызывается массив кнопок Button bt = new Button; private void.
массив кнопок
Суть следующая.пользователь вводит размерность — создаеться массив кнопок — пользователь жмет на.
Массив кнопок
Сформировал массив кнопок Button but = new Button; for (int k = 0; k.
Массив кнопок в С++
Здравствуйте! Не могу создать массив кнопок или других контролов в С++. Пробовал подогнать код.
Массив кнопок
Нужно чтобы цвет задавался кнопке числа Random. Создал массив но не могу изменить цвет через.
Массив из кнопок
Есть двумерный массив из кнопок (10х10), создаваемых программно Button but = new Button; .
Динамическое создание кнопок и работа с ними C#
Короче, суть в чем, я создаю кнопки на динамической форме и хочу чтобы у каждой кнопки было све нажатие или что-нибудь такое, по которому я смогу проверить какая кнопка была нажата и сохранить его, после нажатия другой уже кнопки сравнить их текст если они будут совпадать то обе кнопки убрать с формы.
заместо button_1 нужно сделать например button_2,button_3 и т.д. кнопок очень много.
1 ответ 1
К примеру у нас есть такой код, который добавляет на нашу форму 10 кнопок:
Как мы можем узнать кнопку? Для этого нужен какой либо идентификатор, возьмем к примеру имя, пусть оно будет btn <порядковый номер>. Добавим после строки button.Top = top; еще одну строку button.Name = «btn» + i; .
Далее, как нам отследить нажатие? Для этого нужно подписаться на событие. Стандартный вариант — Click — событие, которое происходит при клике мышью по объекту. Для всех наших кнопок достаточно всего одного обработчика событий! Давайте добавим еще одну строку в свойство кнопки — button.Click += ButtonOnClick; .
Хорошо, с генерацией покончили, теперь наш код выглядит так:
Но! Мы не добавили то, что будет выполнятся при нажатие на кнопку, давайте напишем:
Хорошо, ошибок нет, должно все работать. Но, нужно ведь наделить каким то функционалом наши кнопки. Давайте в ButtonOnClick добавим определение нажатой кнопки и ее удаление:
Давайте по порядку:
- var button = (Button)sender; — Событие Click выдает нам объект sender , который содержит в себе всю информацию о том, кто послал данное событие. Мы знаем, что клик по кнопке производят объекты типа Button , значит смело можем привести sender к типу Button и записать это в переменную.
- if (button != null) Тут мы проверяем, все ли у нас хорошо и не равна ли полученная нами кнопка Null . Кстати, в новых версиях C# языка все это можно очень грамотно упростить (а именно заменив «шапку» if и первую строку на if (sender is Button button) .
- MessageBox.Show(«Прощай » + button.Name); — Ну, обычный вывод сообщения, нечего сверхъестественного. Единственное, подобную «компоновку» string можно очень просто сократить (опять же, новые версии языка, но знать думаю будет полезно), а именно «Прощай » + button.Name мы меняем на $»Прощай
» . - button.Dispose(); — Здесь тоже довольно просто, говорим кнопке «пока!», а если быть точнее, то удаляем все занятые ей ресурсы (что приведет к ее удалению с формы).
Чтож, вроде все разложил «по полочкам» как мог, с этой частью думаю трудностей не возникнет. Удачи!
как мне определить не ту кнопку которую сейчас нажали, а ту, которая была нажата до нее.
Создадим где нибудь приватный объект Button , который будет хранить информацию о последней нажатой кнопке:
Далее, к примеру, при нажатие 2 раза на кнопку, сделаем так, что бы она удалялась. Для этого перепишем наше событие ButtonOnClick :