C# RichTextBox的MouseEnter事件处理程序

C# RichTextBox的MouseEnter事件处理程序,c#,winforms,event-handling,mouseevent,C#,Winforms,Event Handling,Mouseevent,我想在我的RichTextBox中添加一个MouseEnter事件处理程序,我的RichTextBox位于tabcontrol中。以下代码获取当前选定的RichTextBox: private RichTextBox GetRichTextBox() { RichTextBox rtb = null; TabPage tp = tabControl1.SelectedTab; if (tp != null) {

我想在我的RichTextBox中添加一个MouseEnter事件处理程序,我的RichTextBox位于tabcontrol中。以下代码获取当前选定的RichTextBox:

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

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

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

        tp.Controls.Add(rtb);
        tabControl1.TabPages.Add(tp);
下面的代码是我用来创建带有RichTextBox的新选项卡的代码:

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

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

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

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

我不知道如何为创建的RichTextBox创建鼠标输入事件处理程序。在此方面的任何帮助都将不胜感激

在创建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...
}

创建鼠标侦听器,将鼠标侦听器添加到需要它们的对象

    ....
    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
}

您可以使用RichTextBox类的“onMouseCenter”事件。创建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
}

您还应该在适当的位置取消注册事件。

将事件处理程序添加到RichTextBox,然后再将其添加到选项卡控件

rtb.MouseEnter += new EventHandler(TabControlMouseEnterEvent);
然后创建事件处理程序

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

    }

希望这有帮助。

哦,天哪,我觉得自己很愚蠢。我曾尝试过类似的方法,但我想我在什么地方出了问题。非常感谢。这对我有用。