Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
1

Как записать результат в TextBox по нажатию кнопки

18.05.2012, 22:12. Просмотров 3073. Ответов 1
Метки нет (Все метки)

на форме есть 2 textBox(1 чтоб вводить выражение, 2 чтобы выводить в виде обратной польской записи) и button.как мне результат этого кода поместить в textBox2 по нажатию button1?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
        }
        public void PostfixNotationExpression(IEnumerable<string> funcNames)//перечислитель funcNames   для поочередного доступа к элементам коллекции operators
        {
            operators = new List<string>(funcNames);//коллекция операторов
            operators.AddRange(standart_operators);//добавляем список операторов standart_operators  в коллекцию операторв   operators
        }
        private List<string> operators;
        private List<string> standart_operators = new List<string>(new string[] { "(", ")", "+", "-", "*", "/", "=" });//инициализатор коллекции
 
        public IEnumerable<string> Separate(string input)// ИТЕРАТОР!!! перечислитель для формирования строки s
        {
             input = Convert.ToString(textBox1.Text);
           List<string> inputSeparated = new List<string>();//новая входная строка
            int pos = 0;
            while (pos < input.Length)// пока длина входной строки не будет равна 0
            {
                string s = string.Empty + input[pos];// строка S =пустая строка+элемент с индексом [pos] входной строки
                if (!standart_operators.Contains(input[pos].ToString()))// если введенный элемент содержится в коллекции standart_operators
                {
                    if (Char.IsDigit(input[pos]))//
                        for (int i = pos + 1; i < input.Length &&(Char.IsDigit(input[i]) || input[i] == ',' || input[i] == '.'); i++)
                            s += input[i];// в строку S записываем элемент с индексом i, если он является цифрой
                    else if (Char.IsLetter(input[pos]))//если  символ с индексом [pos] буква, то
                        for (int i = pos + 1; i < input.Length && (Char.IsLetter(input[i]) || Char.IsDigit(input[i])); i++)
                            s += input[i];// в строку записываем символ с индексом [i]
                }
                yield return s;// возвращаем строку s 
                pos += s.Length;// индекс pos теперь = длине строки S
            }
        }//формирование строки s 
        private byte GetPriority(string s)//расстановка приоритетов 
        {
            switch (s)//если в строке s встречаются данные символы , то им раздаются приоритеты
            {
                case "(":
                    return 0;
                case ")":
                    return 1;
                case "+":
                    return 2;
                case "-":
                    return 3;
                case "*":
                case "/":
                    return 4;
                case "=":
                    return 5;
                default:
                    return 6;
            }
        }
 
        public string ConvertToPostfixNotation(string input)
           
        {
            List<string> outputSeparated = new List<string>();// создаем коллекцию outputSeparated
            Stack<string> stack = new Stack<string>();// создаем коллекцию стек
            foreach (string c in Separate(input))
            {
                if (operators.Contains(c))
                {
                    if (stack.Count > 0 && !c.Equals("("))//если количество элементов стека больше 0 и равно )
                    {
                        if (c.Equals(")"))//если с=), то 
                        {
                            string s = stack.Pop();// ...помещается на вершину стека
                            while (s != "(")// пока в строке s не встретится очередная ( 
                            {
                                outputSeparated.Add(s);
                                s = stack.Pop();
                            }
                        }
                        else if (GetPriority(c) >= GetPriority(stack.Peek()))//если элемент c больше по приоритету эелемнта стоящего сейчас на вершине стека
                            stack.Push(c);//то он помещается на вершину стека
                        else
                        {
                            while (stack.Count > 0 && GetPriority(c) < GetPriority(stack.Peek()))//если количество эелементов стека больше 0 и если эелемент c по приоритету меньше чем верхний эелемент стека, то...
                                outputSeparated.Add(stack.Pop());//удаляем эелемеент находящийся на вершине стека, а ...
                            stack.Push(c);// с проталкиваем наверх
                        }
                    }
                    else
                        stack.Push(c);//если количество элементов стека меньше 0 и  не равно ), то с проталкиваем наверх стека
                }
                else
                    outputSeparated.Add(c);
            }
            if (stack.Count > 0)
                foreach (string c in stack)
                    outputSeparated.Add(c);
            
            
            return string.Join("", outputSeparated.ToArray());
 
              
 
        }
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2012, 22:12
Ответы с готовыми решениями:

Как динамически создать последовательно несколько TextBox по нажатию кнопки
Уважаемые специалисты C#! Подскажите пожалуйста, как динамически создать несколько TextBox-ов не...

Как сделать так, чтобы по нажатию кнопки цифры, введённые в textBox ы, попадали в программу?
По умолчанию в моих textBox'ax стоит цифра &quot;2&quot; (в некоторых &quot;5&quot; или &quot;3&quot;, не суть важно). Цифры...

Как по нажатию кнопки выключить свойство PasswordChar чтобы был виден текст набранный в textBox
Программирование на C# у меня для textBox активно свойство PasswopdChar как по нажатию капки его...

По нажатию кнопки переносить курсор в TextBox
Как на нажатие кнопки переносить курсов автоматически в TextBox ?

1
64 / 63 / 18
Регистрация: 15.06.2009
Сообщений: 185
20.05.2012, 15:29 2
C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
        {
             textBox2.Text = ConvertToPostfixNotation(textBox1.Text);
        }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2012, 15:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запись из TextBox по нажатию кнопки в базу sql
Здравствуйте, пишу программу, никак не могу написать код, чтобы при нажатии кнопки, данные из...

По нажатию кнопки упорядочить текст в TextBox-е в алфавитном порядке
как сделать чтобы текст в текстбоксе щел в алфавитном порядке, нажав на кнопу ?

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

Сохранять содержимое TextBox-ов в Word или текстовый документ по нажатию кнопки
Подскажите как сделать так, что бы при нажатии на button всё, что будет написано textBox'ы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.