2015-04-20 2 views
0

Я хотел бы добавить обработчик событий MouseEnter в свой RichTextBox, который у меня есть в tabcontrol. Следующий код получает выбранный RichTextBox:Обработчик событий MouseEnter для RichTextBox

private RichTextBox GetRichTextBox() 
    { 
     RichTextBox rtb = null; 
     TabPage tp = tabControl1.SelectedTab; 

     if (tp != null) 
     { 
      rtb = tp.Controls[0] as RichTextBox; 
     } 

     return rtb; 
    } 

следующий код, что я использую, чтобы создать новую вкладку с RichTextBox:

TabPage tp = new TabPage("New Document"); 
     RichTextBox rtb = new RichTextBox(); 
     rtb.Dock = DockStyle.Fill; 

     tp.Controls.Add(rtb); 
     tabControl1.TabPages.Add(tp); 

Я не уверен, как идти о создании мышей Введите обработчик событий для созданного RichTextBox. Любая помощь с этим была бы весьма признательна.

ответ

0

В том же месте, где вы создаете RichTextBox, вы можете добавить обработчик событий к любому событию, которое вы хотите. просто сделайте примерно так:

RichTextBox rtb = new RichTextBox(); 
// the rest of your code... 
rtb.MouseEnter += rtb_MouseEnter; 

void rtb_MouseEnter(object sender, EventArgs e) 
{ 
    // Do what ever you want here... 
} 
+0

О, боже, я чувствую себя глупо. Я пробовал что-то подобное, но, наверное, я где-то ошибся. Спасибо. Это работает для меня. –

+0

Не нужно чувствовать себя глупо, даже самые умные люди могут совершать глупые ошибки ... –

0

Создайте прослушиватель мыши, добавьте мышь в объект, который им нужен.

.... 
    TabPage tp = new TabPage("New Document"); 
    RichTextBox rtb = new RichTextBox(); 
    rtb.Dock = DockStyle.Fill; 

    //Add listener 
    rtb.MouseClick += new MouseEventHandler(Control1_MouseClick); 

    tp.Controls.Add(rtb); 
    tabControl1.TabPages.Add(tp);  
    ... 
} 

private void Control1_MouseClick(Object sender, MouseEventArgs e) { 
    //Stuff 
} 

Source

0

Вы можете использовать событие 'OnMouseEnter' класса RichTextBox. Просто зарегистрировать событие при создании объекта RichTextBox:

TabPage tp = new TabPage("New Document"); 
    RichTextBox rtb = new RichTextBox(); 
    rtb.MouseEnter += MyHandler; 
    rtb.Dock = DockStyle.Fill; 

    tp.Controls.Add(rtb); 
    tabControl1.TabPages.Add(tp); 

А затем поместить свой код, который вы хотите выполнить в вашем EventHandler:

private void MyHandler(object s, EventArgs e) 
{ 
    // code to be executed on mouse enter 
} 

Также вы должны дерегистрировать ваше мероприятие в соответствующей точке.

0

Добавить обработчик события для вашего RichTextBox перед добавлением его к вкладке управлению

rtb.MouseEnter += new EventHandler(TabControlMouseEnterEvent); 

Затем создайте обработчик событий

private void TabControlMouseEnterEvent(object sender, EventArgs e) 
    { 
     RichTextBox rt = (RichTextBox)sender; 
     // do something with selected Rich Text Box 

    } 

Надеется, что это помогает.