|
Forni 0 / 0 / 0 Регистрация: 28.04.2015 Сообщений: 18 |
||||||||
|
1 |
||||||||
Как переименовать кнопку09.05.2015, 09:51. Показов 8461. Ответов 8 Метки нет (Все метки)
Есть два кода, тут особо ничего не происходит:
А тут я пытаюсь переименовать одну из кнопок:
Т.е. вся разница в «button1.Text = Convert.ToString(pyat[1]);», но в первом случае программа запускается, а во втром вылетает, подскажете, в чем проблема?
__________________
0 |
|
Serx 63 / 69 / 22 Регистрация: 28.04.2015 Сообщений: 194 Записей в блоге: 1 |
||||
|
09.05.2015, 10:11 |
2 |
|||
Добавлено через 5 минут
1 |
|
0 / 0 / 0 Регистрация: 28.04.2015 Сообщений: 18 |
|
|
09.05.2015, 10:12 [ТС] |
3 |
|
Нет-нет, это понятно. Мне нужно расставлять значения текста на кнопках при начале программы. До любых нажатий. А еще можно поставить InitializeComponent(); перед «button1.Text = Convert.ToString(pyat[1]);», поскольку поле InitializeComponent(); загружает компоненты формы, такие как кнопка А вот это помогло, затупил я, спасибки)
0 |
|
Serx 63 / 69 / 22 Регистрация: 28.04.2015 Сообщений: 194 Записей в блоге: 1 |
||||
|
09.05.2015, 10:14 |
4 |
|||
|
InitializeComponent(); ставь в самое начало конструктора Form1()
0 |
|
6187 / 2439 / 717 Регистрация: 11.04.2015 Сообщений: 3,948 Записей в блоге: 43 |
|
|
09.05.2015, 10:14 |
5 |
|
Forni, ты обращаешься к кнопке до её создания. Попробуй обратиться к ней после вызова InitializeComponent
0 |
|
lokilo 115 / 116 / 52 Регистрация: 19.12.2014 Сообщений: 612 |
||||
|
09.05.2015, 10:21 |
6 |
|||
|
Forni, я даже и не знаю где вы находите такие коды, и кто так вообще делает? помещать в конструктор формы простое переименование кнопки
0 |
|
63 / 69 / 22 Регистрация: 28.04.2015 Сообщений: 194 Записей в блоге: 1 |
|
|
09.05.2015, 10:24 |
7 |
|
я даже и не знаю где вы находите такие коды, и кто так вообще делает? помещать в конструктор формы простое переименование кнопки Помню я так же делал, когда начинал изучение программирования
0 |
|
0 / 0 / 0 Регистрация: 28.04.2015 Сообщений: 18 |
|
|
09.05.2015, 10:28 [ТС] |
8 |
|
Верно, верно. Это все полностью моя писанина. Больше ошибаюсь, быстрей вникаю. Видимо, пока только так.)
0 |
|
63 / 69 / 22 Регистрация: 28.04.2015 Сообщений: 194 Записей в блоге: 1 |
|
|
09.05.2015, 10:35 |
9 |
|
Лучше, поскольку удобней и читабельней запихнуть код в метод и написать одной стройкой в конструктор формы имя метода Добавлено через 6 минут
0 |
Im starting to learn c# and Im trying to make a simple app that when I press a button the button’s name changes to «Clicked» but I cant make it change the name. This is what I did:
private void Button1_Click(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
asked Apr 29, 2020 at 8:25
3
Button1_Click event is not assigned to button1 control, select button then navigate to properties then select events then select Button1_Click at click event then button1 text will change on click.
answered Apr 29, 2020 at 10:50
private void Form1_Load(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
It works that way
answered Apr 29, 2020 at 16:14
yairyair
154 bronze badges
The Text property is used to set the text caption displayed in the Button control. It seems you don’t get the event handler triggered at all. Just see a breakpoint and see how it is working under the debugger.
But if you need to change the name of object pointer (button name) you can’t really do that after declaring it. You have to set a new object reference instead:
Button newButtonName = button1;
answered Apr 29, 2020 at 9:26
Eugene AstafievEugene Astafiev
42.2k3 gold badges21 silver badges40 bronze badges
Im starting to learn c# and Im trying to make a simple app that when I press a button the button’s name changes to «Clicked» but I cant make it change the name. This is what I did:
private void Button1_Click(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
asked Apr 29, 2020 at 8:25
3
Button1_Click event is not assigned to button1 control, select button then navigate to properties then select events then select Button1_Click at click event then button1 text will change on click.
answered Apr 29, 2020 at 10:50
private void Form1_Load(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
It works that way
answered Apr 29, 2020 at 16:14
yairyair
154 bronze badges
The Text property is used to set the text caption displayed in the Button control. It seems you don’t get the event handler triggered at all. Just see a breakpoint and see how it is working under the debugger.
But if you need to change the name of object pointer (button name) you can’t really do that after declaring it. You have to set a new object reference instead:
Button newButtonName = button1;
answered Apr 29, 2020 at 9:26
Eugene AstafievEugene Astafiev
42.2k3 gold badges21 silver badges40 bronze badges
Я начинаю изучать c # и пытаюсь создать простое приложение, которое, когда я нажимаю кнопку, меняет название кнопки на «Нажатие», но я не могу заставить его изменить имя. Вот что я сделал:
private void Button1_Click(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
3 ответа
Событие Button1_Click не назначено элементу управления button1, выберите кнопку, затем перейдите к свойствам, затем выберите события, затем выберите Button1_Click для события click, после чего текст button1 изменится при нажатии.
0
Rajanikant Hawaldar
29 Апр 2020 в 10:50
Свойство Text используется для установки заголовка текста, отображаемого в элементе управления Button. Кажется, вы вообще не запускаете обработчик событий. Просто посмотрите точку останова и посмотрите, как она работает под отладчиком.
Но если вам нужно изменить имя указателя объекта (имя кнопки), вы не сможете сделать это после объявления этого. Вместо этого вы должны установить новую ссылку на объект:
Button newButtonName = button1;
-1
Eugene Astafiev
29 Апр 2020 в 09:26
private void Form1_Load(object sender, EventArgs e)
{
button1.Text= "Clicked";
}
Это работает так
0
yair
29 Апр 2020 в 16:14
Как можно изменить названия кнопок в MessageBox в C#?
VladD
205k27 золотых знаков284 серебряных знака515 бронзовых знаков
задан 20 мая 2012 в 8:13
Павел ВоеводаПавел Воевода
1854 золотых знака9 серебряных знаков24 бронзовых знака
Никак. Но можно создать форму нужных размеров, повесить там кнопки, информацию (label), и открывать её как MessageBox по виду, единственное лишний код будет, MessageBox для того и придуман что бы одной строчкой её показать и что-то так написать.
Открыть форму можно так:
Form form = new Form1();
form.ShowDialog();
На это форме помещаешь кнопку и обработчик.
Закрыть форму:
form.Close();
ответ дан 20 мая 2012 в 9:40
johniek_compjohniek_comp
2,5094 золотых знака25 серебряных знаков45 бронзовых знаков
Не соглашусь с ответами Василия и johniek_comp, возможность изменить тексты кнопок MessageBox есть. Совсем недавно был подобный вопрос (Как изменить тип MessageBox?).
В случае с кнопками реализация почти ничем не отличается — нужно поставить hook и отлавливать момент создания окна MessageBox и его внутренних контролов.
На CodeProject есть готовый пример по изменению текстов кнопок MessageBox на C#: Localizing System MessageBox
ответ дан 21 мая 2012 в 7:19
3
Класс MessageBox является оберткой над вызовом функции Windows API MessageBox и как таковой не позволяет менять названия кнопок. Вам потребуется создать свой собственный диалог и уже в него добавить необходимые кнопки.
ответ дан 20 мая 2012 в 8:32
stanislavstanislav
34.1k25 золотых знаков95 серебряных знаков212 бронзовых знаков
Вы можете изменить имя метода, просто набрав новое имя вместо старого при редактировании кода. Также как изменение любого текста.
Затем вы можете подтвердить, что элемент управления по-прежнему использует это событие:
Перейдите к конструктору формы и выберите элемент управления. Проверьте его свойства/события и убедитесь, что имя все еще выровнено. Перейдите к коду, сгенерированному конструктором форм, и найдите, где он назначает метод событию, и измените его, если его нужно изменить.
Любой из них должен также автоматически обновлять другой, хотя я полагаю, что обычно предпочтительнее использовать первый подход для согласованности с остальной частью процесса разработки формы.
Обратите внимание, что имя метода может быть любым, что угодно, нет строгого правила, в котором говорится, что это должно быть controlName_eventName(object sender, EvenArgs e). Например, если у вас есть несколько элементов управления, которые совместно используют обработчик событий, вам не нужно решать, какой элемент управления получит имя в имени метода. Вы можете дать ему общее имя, например saveFormChanges(object sender, EvenArgs e) и по-прежнему назначать его как обработчик для этого события.


