RichTextBox 的 MouseEnter 事件处理程序

MouseEnter Event Handler for RichTextBox

我想将 MouseEnter 事件处理程序添加到我在选项卡控件中的 RichTextBox。以下代码获取当前选中的 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 创建鼠标输入事件处理程序。对此的任何帮助将不胜感激。

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

Source

您可以使用 RichTextBox class 的 'OnMouseEnter' 事件。只需在创建 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);

然后将要执行的代码放入事件处理程序中:

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

    }

希望对您有所帮助。