我想将一个 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 的同一位置,可以向所需的任何事件添加事件处理程序。 只需做这样的事情:
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 类的 'OnMouseEnter' 事件。只需在创建富文本框对象时注册事件:
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
}
希望这有帮助。