Jump to content
СофтФорум - всё о компьютерах и не только

С# событие button onclick


mikemet
 Share

Recommended Posts

Всем доброго времени суток.

Собственно вопрос исключительно для "чайников".

 

На форме есть три поля и кнопка.

Реализуется, например : a + b = c , см рис.

При нажатии на кнопку  в поле отображается результат "c".

 

Как это будет выглядеть в коде?

Нужен код только для реализации действия кнопки и поля результата.

Да, и какого типа должно быть поле результата, textBox ?

Т.е. не разберусь никак, нажимаем кнопку, идет сложение, а вот как отразить результат в поле?

 

Спасибо.

 

Безымянный.png

post-82453-0-26553400-1442816437_thumb.p

Link to comment
Share on other sites

В RAD, в инспекторе объектов закладка "Events" для кнопки находишь событие OnClick. Даблклик. В окне кода появляется процедура OnClick. Внутри пишешь сложение (и вообще что хочешь) и присвоение textBox-у значения. 

 

void __fastcall TForm1::Button1Click(TObject *Sender){  try  {    TextBox1->Text = IntToStr(StrToInt(Edit1->Text) * StrToInt(Edit2->Text));  }  catch(...)  {    ShowMessage("Введены не целые числа.");  }}
 

У textBox много свойств разного типа. Но, видимо, требуется свойство text. Его тип string.

Edited by Teddy_Bear
Link to comment
Share on other sites

Teddy_Bear немножко не тот пример привёл (пример для C++, а автор просит C#), но в Visual Studio или SharpDevelop принцип примерно такой же: кидаем три текстовых поля и кнопку на форму, затем щёлкаем 2 раза на кнопке - для кнопки будет создан новый метод-обработчик по умолчанию - это обработка щелчка Button1Click, который автоматически подпишется на событие OnClick кнопки button1. После этого мы можем просто написать внутри метода Button1Click нужный код, который будет вызываться при щелчке на кнопке.

Допустим имеются 3 текстовых поля: textBox1, textBox2, textBox3. Для кнопки Button1 на C# код будет следующим:

void Button1Click(object sender, EventArgs e){    textBox3.Text = (int.Parse(textBox1.Text) + int.Parse(textBox2.Text)).ToString();}
Статический метод int.Parse принимает строку из textBox1 и преобразует её в целочисленный тип (int или Int32). Аналогично данный метод преобразует текст из второго поля в число. Затем полученные числа складываются и всё это мы берём в скобки и преобразуем в строку (при помощи метода ToString()).

Вообще в C# (в отличие от C++) события являются частью языка. Классы могут содержать события, на которые может быть подписано множество методов. При запуске этого события все подписанные методы автоматически выполняются. На основе событий в C# реализуется взаимодействие пользователя с интерфейсом в оконных приложениях.

Link to comment
Share on other sites

Да, мне нужен был пример именно для C#.

Тем не менее большое спасибо Teddy_Bear и Shadow TH за подробные разъяснения для начинающего, великого программиста... :-))

Вопрос можно закрыть.

Link to comment
Share on other sites

Для начинающего программиста я бы подчеркнул важность использования try{ } catch{ }. Оператор catch выполняется, если блок операторов в try завершается ошибкой. Возникает исключение. Обработать его призван блок catch.

Пренебрежение этим правилом ведёт к обычным для Си программирования крашем программы.

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...