C \ # RichTextBox 를 봉 하여 마우스 가 멈 추고 현재 단어 텍스트 의 tooltip 알림 을 표시 합 니 다.
class MyRichTextBox : RichTextBox
{
System.Timers.Timer timer;
int cout = 0;
Point pt = new Point();
ToolTip tooltip = new ToolTip();
protected override void OnCreateControl()
{
base.OnCreateControl();
timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 500;
timer.Enabled = false;
}
protected override void OnMouseHover(EventArgs e)
{
base.OnMouseHover(e);
timer.Enabled = true;
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
timer.Enabled = false;
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (!timer.Enabled)
timer.Enabled = true;
cout = 0;
pt.X = e.Location.X;
pt.Y = e.Location.Y;
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (cout >= 1000)
{
timer.Enabled = false;
func();
}
else
cout += 500;
}
void func()
{
this.Invoke(new MethodInvoker(delegate
{
int index = this.GetCharIndexFromPosition(pt);
string ret = "";
for (int i = index; i < this.Text.Length; i++)
{
char c = this.Text[i];
if ((c > 64 && c < 91) || (c > 96 && c < 123) || (c > 47 && c < 58))
{
ret += c.ToString();
}
else
break;
}
for (int i = index; i - 1 > 0; i--)
{
char c = this.Text[i - 1];
if ((c > 64 && c < 91) || (c > 96 && c < 123) || (c > 47 && c < 58))
{
ret = c.ToString() + ret;
}
else
break;
}
if (ret.Length > 0)
{
//textBox1.Text = ret;
tooltip.Show(" :" + ret, this, pt, 5000);
}
}));
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.