C# 如何在控件的不同区域显示不同的工具提示
我试图显示不同的工具提示文本,这取决于用户将鼠标放在控件的哪个部分。作为一个简化的示例,如果用户将鼠标悬停在左半部,则显示“Left”;如果用户将鼠标悬停在右半部,则显示“Right”:C# 如何在控件的不同区域显示不同的工具提示,c#,winforms,C#,Winforms,我试图显示不同的工具提示文本,这取决于用户将鼠标放在控件的哪个部分。作为一个简化的示例,如果用户将鼠标悬停在左半部,则显示“Left”;如果用户将鼠标悬停在右半部,则显示“Right”: public partial class TestForm : Form { private ToolTip toolTip = new ToolTip(); public TestForm() { InitializeComponent(); } priva
public partial class TestForm : Form
{
private ToolTip toolTip = new ToolTip();
public TestForm() {
InitializeComponent();
}
private void TestForm_MouseMove(object sender, MouseEventArgs e) {
if (e.X < Width / 2) {
toolTip.SetToolTip(this, "Left");
} else {
toolTip.SetToolTip(this, "Right");
}
}
}
公共部分类TestForm:Form
{
专用工具提示工具提示=新工具提示();
公共测试表单(){
初始化组件();
}
私有void TestForm_MouseMove(对象发送方,MouseEventArgs e){
如果(e.X<宽度/2){
设置工具提示(这个“左”);
}否则{
设置工具提示(这个“右”);
}
}
}
问题在于,这会导致工具提示立即显示,并跟随光标四处移动。有没有办法让它表现得像不同的区域是独立的控件?您可以添加计时器,当鼠标未移动时,它会在延迟时触发工具提示 添加具有一定间隔的计时器,例如1000毫秒(1秒) 当鼠标移动时,它应该运行
private void TestForm_MouseMove(object sender, MouseEventArgs e) {
//if (e.X < Width / 2) {
// toolTip.SetToolTip(this, "Left");
//} else {
// toolTip.SetToolTip(this, "Right");
//}
timer1.Stop();
timer1.Start();
}
private void TestForm\u MouseMove(对象发送方,MouseEventArgs e){
//如果(e.X<宽度/2){
//设置工具提示(这个“左”);
//}否则{
//设置工具提示(这个“右”);
//}
timer1.Stop();
timer1.Start();
}
如果停止,则触发工具提示
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
if (PointToClient(Cursor.Position).X < this.Width / 2)
{
toolTip.SetToolTip(this, "Left");
}
else
{
toolTip.SetToolTip(this, "Right");
}
}
private void timer1\u勾选(对象发送方,事件参数e)
{
timer1.Stop();
if(指向客户端(游标位置).X
如何在当前鼠标位置@user2316116设置工具提示我不希望它立即显示出来。我希望工具提示通常的悬停延迟,你可能想考虑使用计时器和标签,并自己编码,因为你想要的行为与标准的工具提示有很大的不同。
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
if (PointToClient(Cursor.Position).X < this.Width / 2)
{
toolTip.SetToolTip(this, "Left");
}
else
{
toolTip.SetToolTip(this, "Right");
}
}