Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891

Аналог TextChanged с эффектом до изменения

03.07.2018, 23:47. Показов 2592. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть ли событие аналог TextChanged, но которое будет происходить до изменения текста?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2018, 23:47
Ответы с готовыми решениями:

Определение ручного/программного изменения textBox.text в событии TextChanged
Есть textBox на форме. При изменении пользователем текста вызывается TextChanged, в котором обрабатываются данные. Но изменение текста...

обработка события TextChanged
Интересует как обработать событие textbox, которое вызывается при наборе текста в textbox. Накодил вот что, две процедуры, одна при...

Не работает эвент TextChanged
Добрый день. Пишу программу на Visual Basic из Studio 2010 Написал программку в которую из другой программы передаются сообщения через...

9
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
04.07.2018, 00:10
Alexandr_7, ну должно же хоть какое-то событие происходить над элементом управления. Можно, например, использовать события мыши: MouseOver, MouseLeave, MouseEnter, MouseDown и т.д.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
04.07.2018, 00:25
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Есть ли событие аналог TextChanged, но которое будет происходить до изменения текста?
Ну, фактически, это событие Enter. Когда текстбокс получает фокус и ожидает ввода текста. Правда он может и час ожидать... Если нужно непосредственно перед изменением, то может подойти KeyDown, например. Или KeyPress
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
04.07.2018, 00:42
Alexandr_7, зачем вам это?

Цитата Сообщение от Shogun31337 Посмотреть сообщение
Если нужно непосредственно перед изменением, то может подойти KeyDown, например. Или KeyPress
А если изменение программное?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
04.07.2018, 00:52
Цитата Сообщение от Someone007 Посмотреть сообщение
А если изменение программное?
Вероятно, тогда стоит создать свое событие и вызывать его перед внесением изменений. Либо же вообще не заморачиваться с событиями и исполнять нужный код до изменений.
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
04.07.2018, 01:03
Someone007, а что мешает, например, в string записать значение, а затем использовать его уже после изменения?
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
04.07.2018, 05:10
Лучший ответ Сообщение было отмечено Alexandr_7 как решение

Решение

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
public class TextboxExtended : TextBox
{
    public event EventHandler<BeforeTextChangedEventArgs> BeforeTextChanged;
 
    protected virtual void OnBeforeTextChanged(BeforeTextChangedEventArgs e)
    {
        BeforeTextChanged?.Invoke(this, e);
    }
 
    private string _oldValue;
 
    protected override void OnTextChanged(EventArgs e)
    {
        var ev = new BeforeTextChangedEventArgs { NewValue = Text, OldValue = _oldValue, Handled = false };
        OnBeforeTextChanged(ev);
        if (ev.Handled)
        {
            Text = _oldValue;
            return;
        }
        _oldValue = Text;
        base.OnTextChanged(e);
    }
}
 
public class BeforeTextChangedEventArgs : EventArgs
{
    public string OldValue { get; set; }
    public string NewValue { get; set; }
    public bool Handled { get; set; }
}
Использование:
C#
1
2
3
4
5
6
7
8
9
10
public Form1()
{
    InitializeComponent();
    textboxExtended1.BeforeTextChanged += TextboxExtended1_BeforeTextChanged;
}
 
private void TextboxExtended1_BeforeTextChanged(object sender, BeforeTextChangedEventArgs e)
{
    e.Handled = e.NewValue == "ab";
}
Текст «ab» ввести не получится
3
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
10.07.2018, 20:08  [ТС]
Помогите пожалуйста переработать вот этот метод
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void RCE_TBXArow_TextChanged(object sender, EventArgs e)
        {
            TextBox tb = sender as TextBox;
 
            string text = tb.Text.ToUpper();
            text = "$" + text.Replace("$", string.Empty);
 
            char[] symbols = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', '$' };
 
            tb.Text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            tb.SelectionStart = tb.Text.Length;
 
            RCE_BTNXArow.Enabled = (tb.Text.Length == tb.MaxLength) && (tb.Text.ToLower() != region_map_arrow_x[SelectMission9()].ToLower());
        }
Нужно также запретить ввод ненужных символов но $ нужно добавлять только при условии

Ну я тольковот так смог
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void tb_EditPalette_n_TextChanged(object sender, EventArgs e)
        {
            #region Парсинг строки
 
            char[] symbols = { '0', '2', '4', '6', '8', 'A', 'C', 'E' };
 
            TextBox tb = (TextBox)sender;
 
            string text = tb.Text.ToUpper();
 
            tb.Text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            if ((tb.Text.Length >= 2 || tb.Text.LastIndexOfAny(symbols) < 0) && tb.Text.Contains("$") == false)
                tb.Text = tb.Text.Insert(0, "$");
 
            tb.SelectionStart = tb.Text.Length;
 
            #endregion
 
 
        }
Добавлено через 16 минут
И в итоге получаю StackOverflowException
Ну да это событе используется для 10 штук TextBoxэов но не понимаю почему исключение.

Добавлено через 2 минуты
Вот происходит создания элемента
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
for (int i = 0; i < PE.Settings.MaxSizePalette; i++)
            {
                tb_EditPalette[i] = new TextBox()
                {
                    Size = new Size(60, 26),
                    Location = new Point(0, i * 34),
                    BackColor = this.ForeColor,
                    ForeColor = this.BackColor,
                    BorderStyle = BorderStyle.FixedSingle,
                    MaxLength = 4,
                    Tag = i
                };
 
                pnl_EditPalette.Controls.Add(tb_EditPalette[i]);
 
                tb_EditPalette[i].TextChanged += tb_EditPalette_n_TextChanged;
 
                pb_EditPalette[i] = new PictureBox()
                {
                    Size = new Size(26, 26),
                    Location = new Point(68, (i * 34)),
                    BackColor = this.BackColor,
                    Tag = i
                };
 
                pnl_EditPalette.Controls.Add(pb_EditPalette[i]);
 
                btn_EditPalette[i] = new Button()
                {
                    Enabled = true,
                    TextAlign = ContentAlignment.MiddleCenter,
                    Size = new Size(80, 26),
                    Location = new Point(102, (i * 34)),
                    FlatStyle = FlatStyle.Popup,
                    Text = "Задать",
                    Cursor = Cursors.Hand,
                    Tag = i,
                    BackColor = Color.Transparent,
                    ForeColor = this.ForeColor,
                };
 
                pnl_EditPalette.Controls.Add(btn_EditPalette[i]);
            }
А вот присвоение значений

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
void SelectPage()
        {
            for (int i = 0; i < PE.Settings.MaxCountHousesPalette; i++)
                pb_SelectHouse[i].Visible = false;
 
            for (int i = 0; i < PE.Settings.MaxSizePalette; i++)
            {
                tb_EditPalette[i].Visible = false;
                pb_EditPalette[i].Visible = false;
                btn_EditPalette[i].Visible = false;
            }
 
            if (PE.Settings.SelectPagePaletteEditor == 0)
            {
                for (int i = 0; i < PE.Settings.CountHousesPalette_regions; i++)
                    pb_SelectHouse[i].Visible = true;
 
                for (int i = 0; i < PE.Settings.SizePalette_regions; i++)
                {
                    tb_EditPalette[i].Visible = true;
                    pb_EditPalette[i].Visible = true;
                    btn_EditPalette[i].Visible = true;
                }
 
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_regions)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_regions - 1);
 
                pbColor_SelectPage.Left = 0;
            }
            else if (PE.Settings.SelectPagePaletteEditor == 1)
            {
                for (int i = 0; i < PE.Settings.CountHousesPalette_ending; i++)
                    pb_SelectHouse[i].Visible = true;
 
                for (int i = 0; i < PE.Settings.SizePalette_ending; i++)
                {
                    tb_EditPalette[i].Visible = true;
                    pb_EditPalette[i].Visible = true;
                    btn_EditPalette[i].Visible = true;
                }
 
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_ending)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_ending - 1);
 
                pbColor_SelectPage.Left = 100;
            }
            else if (PE.Settings.SelectPagePaletteEditor == 2)
            {
                for (int i = 0; i < PE.Settings.CountHousesPalette_gamepal_Unit; i++)
                    pb_SelectHouse[i].Visible = true;
 
                for (int i = 0; i < PE.Settings.SizePalette_gamepal_Unit; i++)
                {
                    tb_EditPalette[i].Visible = true;
                    pb_EditPalette[i].Visible = true;
                    btn_EditPalette[i].Visible = true;
                }
 
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_gamepal_Unit)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_gamepal_Unit - 1);
 
                pbColor_SelectPage.Left = 200;
            }
 
            SelectHousePalette();
        }
 
 
void SelectHousePalette()
        {
            switch (PE.Settings.SelectPagePaletteEditor)
            {
                case 0:
                    {
                        for (int i = 0; i < PE.Settings.CountHousesPalette_regions; i++)
                            pb_SelectHouse[i].Image = Image.FromFile(String.Format(PE.FileNameNoSelTypeHouse_regions, i));
 
                        for (int i = 0; i < PE.Settings.SizePalette_regions; i++)
                            tb_EditPalette[i].Text = Palette_regions[PE.Settings.SelectHousePalette, i];
 
                        pb_SelectHouse[PE.Settings.SelectHousePalette].Image = Image.FromFile(String.Format(PE.FileNameSelTypeHouse_regions, PE.Settings.SelectHousePalette));
 
                        lbl_SelectHouse.Text = PE.Settings.HouseName_regions[PE.Settings.SelectHousePalette];
                    }
                    break;
                case 1:
                    {
                        for (int i = 0; i < PE.Settings.CountHousesPalette_ending; i++)
                            pb_SelectHouse[i].Image = Image.FromFile(String.Format(PE.FileNameNoSelTypeHouse_ending, i));
 
                        for (int i = 0; i < PE.Settings.SizePalette_ending; i++)
                            tb_EditPalette[i].Text = Palette_ending[PE.Settings.SelectHousePalette, i];
 
                        pb_SelectHouse[PE.Settings.SelectHousePalette].Image = Image.FromFile(String.Format(PE.FileNameSelTypeHouse_ending, PE.Settings.SelectHousePalette));
 
                        lbl_SelectHouse.Text = PE.Settings.HouseName_ending[PE.Settings.SelectHousePalette];
                    }
                    break;
                case 2:
                    {
                        for (int i = 0; i < PE.Settings.CountHousesPalette_gamepal_Unit; i++)
                            pb_SelectHouse[i].Image = Image.FromFile(String.Format(PE.FileNameNoSelTypeHouse_gamepal, i));
 
                        for (int i = 0; i < PE.Settings.SizePalette_gamepal_Unit; i++)
                            tb_EditPalette[i].Text = Palette_gamepal_unit[PE.Settings.SelectHousePalette, i];
 
                        pb_SelectHouse[PE.Settings.SelectHousePalette].Image = Image.FromFile(String.Format(PE.FileNameSelTypeHouse_gamepal, PE.Settings.SelectHousePalette));
 
                        lbl_SelectHouse.Text = PE.Settings.HouseName_gamepal_Unit[PE.Settings.SelectHousePalette];
                    }
                    break;
            }
        }
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
10.07.2018, 20:10
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
но не понимаю почему исключение.
Потому что вы в обработчике изменения текста изменяете текст, что вызывает повторное срабатывание события...
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
10.07.2018, 22:52  [ТС]
Сделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void tb_EditPalette_n_TextChanged(object sender, EventArgs e)
        {
            #region Парсинг строки
 
            TextBox tb = (TextBox)sender;
 
            if (tb == null || tb.Text == null || tb.Visible == false) return;
 
            var text = tb.Text.ToUpper();
 
            char[] symbols = { '0', '2', '4', '6', '8', 'A', 'C', 'E' };
 
            tb.Text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            if ((tb.Text.Length >= 2 || tb.Text.LastIndexOfAny(symbols) < 0) && tb.Text.Contains("$") == false)
                tb.Text = tb.Text.Insert(0, "$");
 
            tb.SelectionStart = tb.Text.Length;
 
            #endregion
 
            pb_EditPalette[(int)tb.Tag].BackColor = PE.FromSEGAColor(tb.Text);
        }
Но теперь исключение происходит если перелючится на предыдущию вкладку в SelectHousePalette()

Добавлено через 6 минут
Цитата Сообщение от Someone007 Посмотреть сообщение
Потому что вы в обработчике изменения текста изменяете текст, что вызывает повторное срабатывание события...
Тогда как быть?

Добавлено через 13 минут
Сделал так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void tb_EditPalette_n_TextChanged(object sender, EventArgs e)
        {
            #region Парсинг строки
 
            char[] symbols = { '0', '2', '4', '6', '8', 'A', 'C', 'E' };
 
            TextBox tb = (TextBox)sender;
 
            if (tb == null || tb.Text == null || tb.Visible == false) return;
 
            var text = tb.Text.ToUpper();
 
            if ((tb.Text.Length >= 2 || tb.Text.LastIndexOfAny(symbols) >= 0) && tb.Text.Contains("$") == false)
                text = "$" + text.Replace("$", string.Empty);
 
            tb.Text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            tb.SelectionStart = tb.Text.Length;
 
            #endregion
 
            pb_EditPalette[(int)tb.Tag].BackColor = PE.FromSEGAColor(tb.Text);
        }
Но все равно гавнокодинг. Причина в том что там в 2х методах по 10 раз вызывается циклы. Хочу уменьшить их количества хотябы до 4 ну или если получится вовсе для двух.

Добавлено через 58 минут
В принцыпе сделал так
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
        void SelectPage()
        {
            if (PE.Settings.SelectPagePaletteEditor == 0)
            {
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_regions)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_regions - 1);
 
                pbColor_SelectPage.Left = 0;
            }
            else if (PE.Settings.SelectPagePaletteEditor == 1)
            {
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_ending)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_ending - 1);
 
                pbColor_SelectPage.Left = 100;
            }
            else if (PE.Settings.SelectPagePaletteEditor == 2)
            {
                if (PE.Settings.SelectHousePalette >= PE.Settings.CountHousesPalette_gamepal_Unit)
                    PE.Settings.SelectHousePalette = (PE.Settings.CountHousesPalette_gamepal_Unit - 1);
 
                pbColor_SelectPage.Left = 200;
            }
 
            SelectHousePalette();
        }
 
        private void rbtn_SelectPage_n_CheckedChanged(object sender, EventArgs e)
        {
            var rb = (RadioButton)sender;
            PE.Settings.SelectPagePaletteEditor = (int)rb.Tag;
            SelectPage();
        }
 
        void SelectHousePalette()
        {
            var vCountHouses = 0;
            var vSizePalette = 0;
            var vFileNameNoSel = "";
            var vFileNameSel = "";
 
            if (PE.Settings.SelectPagePaletteEditor == 0)
            {
                vCountHouses = PE.Settings.CountHousesPalette_regions;
                vSizePalette = PE.Settings.SizePalette_regions;
                vFileNameNoSel = PE.FileNameNoSelTypeHouse_regions;
                vFileNameSel = PE.FileNameSelTypeHouse_regions;
                lbl_SelectHouse.Text = PE.Settings.HouseName_regions[PE.Settings.SelectHousePalette];
            }
            else if (PE.Settings.SelectPagePaletteEditor == 1)
            {
                vCountHouses = PE.Settings.CountHousesPalette_ending;
                vSizePalette = PE.Settings.SizePalette_ending;
                vFileNameNoSel = PE.FileNameNoSelTypeHouse_ending;
                vFileNameSel = PE.FileNameSelTypeHouse_ending;
                lbl_SelectHouse.Text = PE.Settings.HouseName_ending[PE.Settings.SelectHousePalette];
            }
            else if (PE.Settings.SelectPagePaletteEditor == 2)
            {
                vCountHouses = PE.Settings.CountHousesPalette_gamepal_Unit;
                vSizePalette = PE.Settings.SizePalette_gamepal_Unit;
                vFileNameNoSel = PE.FileNameNoSelTypeHouse_gamepal;
                vFileNameSel = PE.FileNameSelTypeHouse_gamepal;
                lbl_SelectHouse.Text = PE.Settings.HouseName_gamepal_Unit[PE.Settings.SelectHousePalette];
            }
            else return;
 
            for (int i = (PE.Settings.MaxCountHousesPalette - vCountHouses); i < PE.Settings.MaxCountHousesPalette; i++)
                pb_SelectHouse[i].Visible = false;
 
            for (int i = 0; i < vCountHouses; i++)
            {
                pb_SelectHouse[i].Visible = true;
                pb_SelectHouse[i].Image = Image.FromFile(String.Format(vFileNameNoSel, i));
            }
 
            for (int i = (PE.Settings.MaxSizePalette - vSizePalette); i < PE.Settings.MaxSizePalette; i++)
            {
                tb_EditPalette[i].Visible = false;
                pb_EditPalette[i].Visible = false;
                btn_EditPalette[i].Visible = false;
            }
 
            for (int i = 0; i < vSizePalette; i++)
            {
                tb_EditPalette[i].Visible = true;
                if (PE.Settings.SelectPagePaletteEditor == 0)
                    tb_EditPalette[i].Text = Palette_regions[PE.Settings.SelectHousePalette, i];
                else if (PE.Settings.SelectPagePaletteEditor == 1)
                    tb_EditPalette[i].Text = Palette_ending[PE.Settings.SelectHousePalette, i];
                else if (PE.Settings.SelectPagePaletteEditor == 2)
                    tb_EditPalette[i].Text = Palette_gamepal_unit[PE.Settings.SelectHousePalette, i];
 
                tb_EditPalette_n_TextChanged(tb_EditPalette[i], new EventArgs());
 
                pb_EditPalette[i].Visible = true;
                btn_EditPalette[i].Visible = true;
            }
 
            pb_SelectHouse[PE.Settings.SelectHousePalette].Image = Image.FromFile(String.Format(vFileNameSel, PE.Settings.SelectHousePalette));
        }
 
private void tb_EditPalette_n_TextChanged(object sender, EventArgs e)
        {
            #region Парсинг строки
 
            char[] symbols = { '0', '2', '4', '6', '8', 'A', 'C', 'E' };
 
            TextBox tb = (TextBox)sender;
 
            var text = tb.Text.ToUpper();
 
            if ((tb.Text.Length >= 2 || tb.Text.LastIndexOfAny(symbols) >= 0) && tb.Text.Contains("$") == false)
                text = "$" + text.Replace("$", string.Empty);
 
            tb.Text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            tb.SelectionStart = tb.Text.Length;
 
            #endregion
 
            pb_EditPalette[(int)tb.Tag].BackColor = PE.FromSEGAColor(tb.Text);
        }
Но тоже говнокод.

Добавлено через 1 час 11 минут
$ не подставляется почемута при этом условие
C#
1
2
if ((tb.Text.Length >= 2 || tb.Text.LastIndexOfAny(symbols) >= 0) && tb.Text.Contains("$") == false)
                text = "$" + text.Replace("$", string.Empty);
Долар нужно подставить в начало только в том случае если там
1. Если долара нет в начале
2. Больше 2х символов
3. Если символом является не цифра а буква
Как сделать условие на проверку этих 2х факторов. Например обязательно должен выполнятся 1 фактор ну и 2 и 3 то тут вместо и должно быть условие или тобишь звучит так
если 1 и (2 или 3) выполняются то ставим знак долар в начало

Добавлено через 6 минут
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
private void tb_EditPalette_n_TextChanged(object sender, EventArgs e)
        {
            #region Парсинг строки
 
            char[] symbols = { '0', '2', '4', '6', '8', 'A', 'C', 'E' };
 
            TextBox tb = (TextBox)sender;
 
            var text = tb.Text.ToUpper();
 
            text = new string(text.Where(x => symbols.Contains(x)).ToArray());
 
            if ((text.Length >= 2 || text.IndexOf('A') >= 0 || text.IndexOf('C') >= 0 || text.IndexOf('E') >= 0) && text.IndexOf("$") < 0)
                text = text.Insert(0, "$");
 
            tb.SelectionStart = tb.Text.Length;
 
            #endregion
 
            #region Редактирование палитр
 
            if (tb.Text.Length <= 0) return;
 
            pb_EditPalette[(int)tb.Tag].BackColor = PE.FromSEGAColor(tb.Text);
 
            if (PE.Settings.SelectPagePaletteEditor == 0)
                Palette_regions[PE.Settings.SelectHousePalette, (int)tb.Tag] =  tb.Text;
            else if (PE.Settings.SelectPagePaletteEditor == 1)
                Palette_ending[PE.Settings.SelectHousePalette, (int)tb.Tag] = tb.Text;
            else if (PE.Settings.SelectPagePaletteEditor == 2)
                Palette_gamepal_unit[PE.Settings.SelectHousePalette, (int)tb.Tag] = tb.Text;
 
            #endregion
        }
Сделал так. Работает теперь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2018, 22:52
Помогаю со студенческими работами здесь

Как работает TextChanged
Вроде бы плевое дело, ан-нет. Видимо что-то не так делаю или хз, но как видно по скринам, я присваиваю в comboBox1.Text = this.Username; ...

Отключение событий TextChanged
Имеется 5 текстбоксов, при использовании события textBox1_TextChanged необходимо отключить все остальные TextChanged, удается сделать...

Событие, аналогичное TextChanged в dateTimePicker
Как в dateTimePicker вызвать событие аналогичное TextCanged в комбобоксе? Добавлено через 1 час 38 минут видимо ничего с этого не...

Событие textchanged для массива текстбоксов
на одно кнопке я создал массив текстбоксов (вообще на форме до этого нет текстбоксов). на другой кнопке я считывают там нужные мне...

Совмещение нескольких TextChanged в разных TextBox
Есть форма на которой расположено много текстбоксов, задача в том, что при вводе значения в один из них в остальных выводило данное число...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru