Загрузка...

Кто шарит в c# - сюда!

Тема в разделе C# создана пользователем Tea_Master 20 ноя 2019. 843 просмотра

  1. Tea_Master
    Tea_Master Автор темы 20 ноя 2019 你是一個系統奴隸 463 13 май 2017
    [IMG]

    Нужно чтобы в первое и второе поле вводили значение, а в третьем был результат этих двух чисел
     
  2. Ascar
    Ascar 20 ноя 2019 Чемпион по спизженным велосипедам 335 24 ноя 2016
    Без кнопки?
     
  3. nuktonun
    nuktonun 20 ноя 2019 20 26 сен 2017
    Можно же кнопку сделать и в ней прописать чтобы с двух строк данные считывались, в третью результат выводился
     
  4. Tea_Master
    Tea_Master Автор темы 20 ноя 2019 你是一個系統奴隸 463 13 май 2017
    Да, чтобы результат сразу высвечивался в третьей строке, так надо
    --- Сообщение объединено с предыдущим 20 ноя 2019
    Без неё нужно
     
  5. Sense
    Sense 20 ноя 2019 1843 16 июн 2014
    ну просто в событиях изменения на полях пишешь формулу и всё
     
  6. Tea_Master
    Tea_Master Автор темы 20 ноя 2019 你是一個系統奴隸 463 13 май 2017
    Кто-то может кинуть пример в Лс, в замен и я что-то кину
     
  7. renameduser_110248
    гугли в сторону TextChange
     
  8. Fans
    Fans 20 ноя 2019 L 812 3 май 2018
    Tea_Master, int a = Convet.ToInt32(TextBox1.Text); int aa = Convet.ToInt32(TextBox1.Text); string rez = (a+aa).ToString()TextBox3.Text = rez;
     
  9. renameduser_110248
    И упадёт он с ошибкой из-за того что где-то затрёт полностью текст
     
  10. Fans
    Fans 20 ноя 2019 L 812 3 май 2018
  11. blackjesus666
    Блять просто в таймере пиши код с привязкой к текст боксу
     
  12. renameduser_110248
    ты думаешь он знает про try catch? он не знает как суммировать читая с текстбокса, и кажись про эвенты тоже не знает
    --- Сообщение объединено с предыдущим 20 ноя 2019
    А эвенты тогда зачем?
     
  13. blackjesus666
    Нахуй эвенты? Намного проще и быстрее через таймер захуячить
     
  14. renameduser_110248
    Я тебя понял...
     
  15. xmka
    xmka 21 ноя 2019 26 8 фев 2019
    Как-то так:

    Код

    using System;
    using System.Text.RegularExpressions;
    using System.Windows.Forms;

    namespace WindowsFormsApp1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    void Sum(int? tb1, int? tb2)
    {
    textBox3.Text = (tb1 + tb2).ToString();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    if (Regex.IsMatch(textBox1.Text, "[^0-9]"))
    {
    textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
    textBox1.SelectionStart = textBox1.TextLength;
    }
    else
    {
    Sum(Convert.ToInt32((textBox1.Text != "" ? textBox1.Text : "0")), Convert.ToInt32((textBox2.Text != "" ? textBox2.Text : "0")));
    }
    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    if (Regex.IsMatch(textBox2.Text, "[^0-9]"))
    {
    textBox2.Text = textBox2.Text.Remove(textBox2.Text.Length - 1);
    textBox2.SelectionStart = textBox2.TextLength;
    }
    else
    {
    Sum(Convert.ToInt32((textBox1.Text != "" ? textBox1.Text : "0")), Convert.ToInt32((textBox2.Text != "" ? textBox2.Text : "0")));
    }
    }
    }
    }
     
  16. renameduser_110248
    Ты мог в Sum написать
    Код
    void Sum() {
    if (int.TryParse(textBox1.Text, out int a) && int.TryParse(textBox2.Text, out int b)) {
    textBox3.Text = (a+b).ToString()
    }}
    и в TextChanged вызывать Sum, и не нужны все эти регулярки и тд. Но попытка хорошая)
     
  17. xmka
    xmka 21 ноя 2019 26 8 фев 2019
    Я написал самый простой пример. Вообще не сильно хорошо знаю C#
     
  18. renameduser_110248
    самый простой? сравни кол-во кода который показал я и ты)
     
  19. FormatC
    FormatC 3 дек 2019 Заблокирован(а) 128 4 июл 2019
    Ныа:
    Код

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApp1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    if (textBox2.Text.Trim() != "")
    {
    try
    {
    int a = Convert.ToInt32(textBox1.Text);
    int b = Convert.ToInt32(textBox2.Text);
    int sum = a + b; // Сама операция
    textBox3.Text = sum.ToString();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    }
    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    if (textBox1.Text.Trim() != "")
    {
    try
    {
    int a = Convert.ToInt32(textBox1.Text);
    int b = Convert.ToInt32(textBox2.Text);
    int sum = a + b; // Сама операция
    textBox3.Text = sum.ToString();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    }
    }
    }
    }

    --- Сообщение объединено с предыдущим 3 дек 2019
    за 5 сек тупа натаскал кода
    --- Сообщение объединено с предыдущим 3 дек 2019
    делал такие калькуляторы еще год назад)))
    --- Сообщение объединено с предыдущим 3 дек 2019
    Советую убрать MessageBox в обработчике ошибок, ибо при стирании операторов будет выскакивать MessageBox, что не очень приятно.
    --- Сообщение объединено с предыдущим 3 дек 2019
    Вот новый код:
    Код

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApp1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    if (textBox2.Text.Trim() != "")
    {
    try
    {
    int a = Convert.ToInt32(textBox1.Text);
    int b = Convert.ToInt32(textBox2.Text);
    int sum = a + b; // Сама операция
    textBox3.Text = sum.ToString();
    }
    catch (Exception)
    {
    textBox3.Text = "";
    }
    }
    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    if (textBox1.Text.Trim() != "")
    {
    try
    {
    int a = Convert.ToInt32(textBox1.Text);
    int b = Convert.ToInt32(textBox2.Text);
    int sum = a + b; // Сама операция
    textBox3.Text = sum.ToString();
    }
    catch (Exception)
    {
    textBox3.Text = "";
    }
    }
    }
    }
    }

     
  20. renameduser_110248
    FormatC, зачем плодить 2 одинаковых кода? не проще тогда у второго textbox подписаться на уже существующий метод а не создавать новый и туда пихать тот же код?
     
Top
Загрузка...