0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 6
1

Как вернуть исходные данные в MaskedTextBox при нажатии Esc

12.11.2015, 11:29. Показов 1730. Ответов 7
Метки нет (Все метки)

При запуске формы в текстбоксах уже есть изначальные данные. Мне нужно что бы при изменении этих данных пользователем, при нажатии Esc начальное значение возвращалось. Подскажите, как это можно сделать. Спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2015, 11:29
Ответы с готовыми решениями:

Вернуть исходные данные
Здравствуйте, помогите пожалуйста как вычислить и вернуть исходные данные по стоимости (при нажатии...

Организовать ,что при нажатии Enter входит в меню , а при нажатии Esc выходит с программы
Вот кусочек курсовой , помогите организовать такую вещь как при нажатии Enter входит в меню , а при...

Как выйти из цикла при нажатии клавиши ESC
Доброго времени дня. Поясните, как выйти из цикла при нажатии клавиши ESC void GetStr() {...

Как закрыть программу из любого места при нажатии ESC?
Как закрыть программу из любого места при нажатии ESC? Для главного окна реализовал этот так: void...

7
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
12.11.2015, 13:56 2
Только если MaskedTextBox в фокусе
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace SharpWinForms
{
    public partial class MainForm : Form
    {
        private string InitialMTBValue = "Дер Пароль";
 
        public MainForm() {
            InitializeComponent();
            maskedTextBox1.Text = InitialMTBValue;
        }
 
        private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e) {
            if (e.KeyCode == Keys.Escape)
                maskedTextBox1.Text = InitialMTBValue;
        }
    }
}
Для формы в целом
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace SharpWinForms
{
    public partial class MainForm : Form
    {
        private string InitialMTBValue = "Дер Пароль";
 
        public MainForm() {
            InitializeComponent();
            this.KeyPreview = true;
            maskedTextBox1.Text = InitialMTBValue;
        }
 
        private void MainForm_KeyDown(object sender, KeyEventArgs e) {
            if (e.KeyCode == Keys.Escape)
                maskedTextBox1.Text = InitialMTBValue;
        }
    }
}
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 6
12.11.2015, 16:59  [ТС] 3
А можно сделать один метод который можно для всех текстбоксов применить? или только для каждого отдельно писать?
0
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
12.11.2015, 17:09 4
А во всех текстбоксах изначально одинаковый текст или нет?
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 6
12.11.2015, 18:53  [ТС] 5
Во всех разные значения (числовые), текстбоксов очень много
0
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
12.11.2015, 19:26 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Тогда можно задействовать словарь - занесём в него все изначальные значения текстбоксов, а затем по имени текстбокса будем их получать. У текстбоксов должны быть заданы свойства Name
Общая идея
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
namespace SharpWinForms
{
    public partial class MainForm : Form
    {
        private Dictionary<string, string> PassDict;
        
        public MainForm() {
            InitializeComponent();
            this.KeyPreview = true;
            PassDict = Dictionary<string, string>();
            PassDict.Add("maskedTextBox1", "Password");
            PassDict.Add("maskedTextBox2", "qwerty");
            // и так для всех
        }
 
        private void MainForm_KeyDown(object sender, KeyEventArgs e) {
            if (e.KeyCode == Keys.Escape) {
                foreach (MaskedTextBox box in this.Controls.OfType<MaskedTextBox>()) {
                    box.Text = PassDict[box.Name];
                }
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 6
12.11.2015, 19:47  [ТС] 7
Может я конечно что то не так сделала, но у меня не работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private Dictionary<string, string> PassDict;
        public frmMain()
        {
            InitializeComponent();
            CenterToScreen();
            this.KeyPreview = true;
            PassDict = new Dictionary<string, string>();
            PassDict.Add("txtV_CH4_DP1", "15000");
            PassDict.Add("txtV_CH4Min_DP1", "10000");
            
        }
 
        private void MainForm_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                foreach (MaskedTextBox box in this.Controls.OfType<MaskedTextBox>())
                {
                    box.Text = PassDict[box.Name];
                }
            }
        }
0
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
12.11.2015, 19:53 8
nataliaaks, ну придётся немного извилинами пошевелить. Направление я вам дал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2015, 19:53
Помогаю со студенческими работами здесь

Выход из цикла при нажатии ESC
Определить, содержит ли текст символы,отличные от букв и пробелов. Вот мой код: #include&lt;iostream&gt;...

Как вернуть исходные значения?
Вот вопрос, который мучает меня не первый день: пусть мы имеем массив натуральных чисел от 1 до...

Почему при нажатии Esc мгры сворачиваются?
Привет программисты дело вот в чем когда я играю в игру то нажимая esc игра сворачивается и...

Почему исчезают вкладки при нажатии на Esc?
Здравствуйте! Создаю вкладки с использованием Tab Control'а в VC6. Все нормально, но вот только...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru