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

Обработка событий для динамически создаваемых Textbox

01.06.2012, 22:01. Просмотров 1922. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
По нажатию на кнопку внутри Меню создаю новые вкладки TabPage для TabControl.
Каждая новая вкладка после создания должна содержать новый FastColoredTextBox (полный аналог Textbox).

И вкладки и FastColoredTextBox создаются, однако для FastColoredTextBox необходимо обработать событие TextChanged.
При попытке обработать событие появляется ошибка: Нет перегруженного метода для "fastColoredTextBox_TextChanged", который соответствует делегату "System.EventHandler".

Текст программы:
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
 
 private void новаяВкладкаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabscount++;
            TabPage newTabPage = new TabPage();
            newTabPage.Name = "tabPage" + tabscount;
            FastColoredTextBox newFastText = new FastColoredTextBox();
            newFastText.Name= "fastColoredTextBox"+tabscount;
            tabControl1.Controls.Add(newTabPage);
            newTabPage.Controls.Add(newFastText);
            newFastText.Text = @" ";
            // ошибка здесь
            newFastText.TextChanged += new EventHandler(fastColoredTextBox_TextChanged);         
            newFastText.Visible = true;
            this.Controls.Add(tabControl1);          
        }
 
  //обработка события
  protected void fastColoredTextBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            var sw = Stopwatch.StartNew();
            
            e.ChangedRange.ClearStyle();
            //подсветка базовых типов
            e.ChangedRange.SetStyle(Color.Blue, @"\b(int|float|double|string|real|bool)\b");
            //...и тд..
             //.....
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            //подсветка { } скобок
            HighlightBrackets();
        }
Подскажите пожалуйста, как исправить ошибку.
Буду рада любому совету/замечанию.
Спасибо!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 22:01
Ответы с готовыми решениями:

Название создаваемых динамически событий кнопок
Здравствуйте, я пишу сапера на C# Я создаю все кнопки динамически с помощью 2х циклов ...

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

Событие CheckedChanged для динамически создаваемых Radiobutton
Уважаемые форумчане, подскажите как определить событие CheckedChanged для динамически создаваемых...

Обработка событий динамически созданных объектов WinForms
В проекте есть две обособленные формы Form1 и Form2. На Form2 динамически в ячейки элемента...

2
Vermilion
190 / 158 / 38
Регистрация: 21.10.2011
Сообщений: 178
01.06.2012, 23:14 2
TextChanged принимает EventArgs, а не TextChangedEventArgs. Исправьте,
C#
1
protected void fastColoredTextBox1_TextChanged(object sender, EventArgs e)
0
ninaintrouble
0 / 0 / 1
Регистрация: 22.04.2010
Сообщений: 12
02.06.2012, 00:00  [ТС] 3
тогда пишет ошибки относительно


"System.EventArgs" не содержит определения для "ChangedRange" и не был найден метод расширения "ChangedRange", принимающий тип "System.EventArgs" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)
ошибка в строке
e.ChangedRange.ClearStyle();

вот как TextChangedEventArgs связан с EventArgs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class TextChangedEventArgs : EventArgs
    {
        /// <summary>
        /// This range contains changed area of text
        /// </summary>
        public Range ChangedRange { get; set; }
 
        /// <summary>
        /// Constructor
        /// </summary>
        public TextChangedEventArgs(Range changedRange)
        {
            this.ChangedRange = changedRange;
        }
    }
}
Добавлено через 39 минут
ошибку устранила таким способом
C#
1
newFastText.TextChanged += new EventHandler<TextChangedEventArgs>(fastColoredTextBox_TextChanged);
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 00:00

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

Обработка событий TextBox
Привет. Допустим у меня есть несколько TextBox'ов. Мне нужно проверить вводимые данные. Правила...

Массовая обработка событий в нескольких TextBox
Создаю 10 текстовых полей и на каждое поле нужно навесить обработку события Validating. Можно на...

Обработка событий в элементе управления textbox
Здравствуйте, помогите пожалуйста(лучше кодом, или примером) по такому вопросу: имеется на форме...

Позиционирование динамически создаваемых GroupBox
У меня програмно создается гроуп бокс. Но их создается несколько. Вот такой вот функцией. ...


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

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

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