Как переименовать кнопку в windows forms

Обновлено: 04.07.2024

Есть разработанная ком панель, необходимо, чтобы по заданному условию на одной из кнопок изменялся её текст. Как это осуществить? Как "подобраться" в тексту на кнопке? ЭлементыФОрмы.КоманднаяПанель2.Кнопки.<ИмяКнопки> // а дальше?

Отладчик отобрали вместе с СП и панелью свойств в конфигураторе?

неа, не работает что мне тут Отладчик может сказать? А в СП пока не нахожу.. КнопкиКоманднойПанели (CommandBarButtons) Элементы коллекции: КнопкаКоманднойПанели Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс (нумерация с 0) элемента. Свойства: Методы: Описание: Используется для доступа к свойствам и методам коллекции кнопок командной панели. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Пример: __ Какое из этих методов позволит мне переименовать кнопку?

ЭлементыФОрмы.КоманднаяПанель2.Кнопки.<ИмяКнопки>.Заголовок

Встань отладчиком на строку ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ИмяКнопки.Заголовок = ". " нажми shift-f9 и посмотри, что такое у тебя "ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ИмяКнопки"

посмотрел. Не работают ни ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ИмяКнопки.Заголовок = "" ни ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ИмяКнопки.Текст ="" ни хотя все это отладчик показывает..

ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ИмяКнопки.Текст ="Новое Название" Не работает чтоли?

Эта штука присваивает переменной <<Кнопка>> результат логического сравнения <<ЭлементыФОрмы.КоманднаяПанель2.Кнопки.ДобавитьОбъектВид.Текст = "ав";>>, если чо =)

Смотри в обработчик нажатия кнопки которую ты хочешь переименовать:

+Тогда например при нажатии на эту кнопку в панели, она переименуеться.

сорри, сорри. Заработало. "Кнопка = " - лишнее, не обратил внимание на неё(( сорри

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

Как переименовать функции при переименовании кнопки?

спросил(а) 2017-07-12T14:52:00+03:00 4 года, 4 месяца назад

Вы можете изменить имя метода, просто набрав новое имя вместо старого при редактировании кода. Также как изменение любого текста.

Затем вы можете подтвердить, что элемент управления по-прежнему использует это событие:

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

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

Обратите внимание, что имя метода может быть любым, что угодно, нет строгого правила, в котором говорится, что это должно быть controlName_eventName(object sender, EvenArgs e) . Например, если у вас есть несколько элементов управления, которые совместно используют обработчик событий, вам не нужно решать, какой элемент управления получит имя в имени метода. Вы можете дать ему общее имя, например saveFormChanges(object sender, EvenArgs e) и по-прежнему назначать его как обработчик для этого события.

ответил(а) 2017-07-12T14:57:00+03:00 4 года, 4 месяца назад

Щелкните правой кнопкой мыши на имени функции и выберите "Переименовать". Имя будет выделено (оно зеленое на моей системе, см. Рисунок ниже). Измените имя и нажмите кнопку "Применить". Событие нажатия кнопки будет правильно указывать на недавно переименованный метод.

enter image description here

enter image description here

ответил(а) 2017-07-12T17:22:00+03:00 4 года, 4 месяца назад

измените button1_Click метода button1_Click в коде на новое имя, а затем нажмите ctrl+. (период) и выберите "Переименовать". В качестве альтернативы щелкните лампочку и выберите "Переименовать".

ответил(а) 2017-07-12T14:57:00+03:00 4 года, 4 месяца назад

перейдите к своему дизайну. Щелкните правой кнопкой мыши → Свойства (F4) → События → ClickEvent → Введите имя, которое вам нужно, и щелкните по нему, чтобы создать событие Click с именем, которое вы ввели

ответил(а) 2017-07-12T14:57:00+03:00 4 года, 4 месяца назад

enter image description here

Вам нужно изменить имя события в окне свойств.

ответил(а) 2017-07-12T14:54:00+03:00 4 года, 4 месяца назад

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

Если вы введете файл FormName.Designer.cs , вы увидите функцию InitializeComponent которая содержит настройки свойств всех элементов формы, включая привязку их событий. Например, у вас, вероятно, будет нечто подобное:

где button1 - это имя элемента, Click - это имя события этого элемента, а button1_Click - это имя функции, обрабатывающей это событие.

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

Anchor : Определяет, как элемент будет растягиваться

BackColor : Определяет фоновый цвет элемента

BackgroundImage : Определяет фоновое изображение элемента

ContextMenu : Контекстное меню, которое открывается при нажатии на элемент правой кнопкой мыши. Задается с помощью элемента ContextMenu

Cursor : Представляет, как будет отображаться курсор мыши при наведении на элемент

Dock : Задает расположение элемента на форме

Enabled : Определяет, будет ли доступен элемент для использования. Если это свойство имеет значение False, то элемент блокируется.

Font : Устанавливает шрифт текста для элемента

ForeColor : Определяет цвет шрифта

Location : Определяет координаты верхнего левого угла элемента управления

Name : Имя элемента управления

Size : Определяет размер элемента

Width : ширина элемента

Height : высота элемента

TabIndex : Определяет порядок обхода элемента по нажатию на клавишу Tab

Tag : Позволяет сохранять значение, ассоциированное с этим элементом управления

Кнопка

Наиболее часто используемым элементом управления является кнопка. Обрабатывая событие нажатия кнопки, мы может производить те или иные действия.

При нажатии на кнопку на форме в редакторе Visual Studio мы по умолчанию попадаем в код обработчика события Click , который будет выполняться при нажатии:

Оформление кнопки

Чтобы управлять внешним отображением кнопки, можно использовать свойство FlatStyle. Оно может принимать следующие значения:

Flat - Кнопка имеет плоский вид

Popup - Кнопка приобретает объемный вид при наведении на нее указателя, в иных случаях она имеет плоский вид

Standard - Кнопка имеет объемный вид (используется по умолчанию)

System - Вид кнопки зависит от операционной системы

Изображение на кнопке

Как и для многих элементов управления, для кнопки можно задавать изображение с помощью свойства BackgroundImage. Однако мы можем также управлять размещением текста и изображения на кнопки. Для этого надо использовать свойство TextImageRelation . Оно приобретает следующие значения:

Overlay : текст накладывается на изображение

ImageAboveText : изображение располагается над текстом

TextAboveImage : текст располагается над изображением

ImageBeforeText : изображение располагается перед текстом

TextBeforeImage : текст располагается перед изображением

Например, установим для кнопки изображение. Для этого выберем кнопку и в окне Свойств нажмем на поле Image (не путать с BackgroundImage). Нам откроется диалоговое окно установи изображения:

Установка изображения для кнопки

В этом окне выберем опцию Local Resource и нажмем на кнопку Import , после чего нам откроется диалоговое окно для выбора файла изображения.

После выбора изображения мы можем установить свойство ImageAlign , которое управляет позиционированием изображения на кнопке:

ImageAlign

Нам доступны 9 вариантов, с помощью которых мы можем прикрепить изображение к определенной стороне кнопки. Оставим здесь значение по умолчанию - MiddleCenter , то есть позиционирование по центру.

Затем перейдем к свойству TextImageRelation и установим для него значение ImageBeforeText . В итоге мы получим кнопку, где сразу после изображения идет надпись на кнопке:

Кнопка с изображением в Windows Forms

Клавиши быстрого доступа

При работе с формами при использовании клавиатуры очень удобно пользоваться клавишами быстрого доступа. При нажатии на клавиатуре комбинации клавиш At+некоторый символ, будет вызываться определенная кнопка. Например, зададим для некоторой кнопки свойство Text равное &Аватар . Первый знак - амперсанд - определяет ту букву, которая будет подчеркнута. В данном случае надпись будет выглядеть как А ватар. И теперь чтобы вызвать событие Click, нам достаточно нажать на комбинацию клавиш Alt+А.

Кнопки по умолчанию

Форма, на которой размещаются все элементы управления, имеет свойства, позволяющие назначать кнопку по умолчанию и кнопку отмены.

Так, свойство формы AcceptButton позволяет назначать кнопку по умолчанию, которая будет срабатывать по нажатию на клавишу Enter.

Аналогично работает свойство формы CancelButton , которое назначает кнопку отмены. Назначив такую кнопку, мы можем вызвать ее нажатие, нажав на клавишу Esc.

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

В главной форме Form1 разместить:

  • элемент управления типа Label для вывода результата возврата из второстепенной формы;
  • элемент управления типа Button для вызова второстепенной формы.

Во второстепенной форме Form2 разместить:

  • элемент управления типа Label для вывода заголовка формы;
  • два элемента управления типа Button для обеспечения подтверждения или неподтверждения выбора (действия) во второстепенной форме.

Рис. 1. Схема взаимодействия между формами

Выполнение

1. Создать приложение типа Windows Forms Application

Запустить Microsoft Visual Studio 2010 . Пример создания нового приложения типа Windows Forms Application подробно описывается здесь.

Сохранить проект в произвольной папке.

Рис. 2. Главная форма приложения Form1

2. Разработка главной формы приложения

Из палитры элементов управления Toolbox выносим на форму:

  • элемент управления типа Button ;
  • элемент управления типа Label .

Рис. 3. Главная форма приложения после внесенных изменений

3. Создание второстепенной формы

Способ 1.
Для добавления формы №2 в проект этим способом нужно вызвать команду (рис. 4)

Рис. 5. Окно добавления новой формы к проекту

Способ 2.

Также новую форму можно добавить к проекту с помощью соответствующей команды из контекстного меню (рис. 7).
Последовательность действий следующая:

Рис. 7. Добавление новой формы из Solution Explorer

В результате откроется точно такое же окно как на рисунке 5.

4. Разработка второстепенной формы

Следующим шагом есть разработка второстепенной формы. Используя средства панели инструментов Toolbox создаем второстепенную форму Form2 как показано на рисунке 8. Такое построение формы соответствует условию задачи. Таким же образом, на Form2 имеем элементы управления label1 , butto1 , button2 .

Рис. 8. Второстепенная форма Form2

5. Программирование событий клика на кнопках OK и Cancel формы Form2

Программируем событие клика на кнопке OK . Подробный пример программирования события клика на кнопке OK описывается здесь.

6. Вызов формы Form2 из главной формы приложения

Программный код обработчика события будет иметь следующий вид:

В листинге, приведенном выше, сначала создается экземпляр класса типа Form2 . В операторе условного перехода if осуществляется вызов диалогового окна формы Form2 с помощью строки

Листинг всего программного кода формы Form1 следующий

7. Выполнение приложения

После выполненных действий можно выполнять приложение и исследовать его работу.

Читайте также: