这是场景:
我正在开发一个代码编辑器(Winforms),我使用一个RichTextBox
和一个组件作为 Intellisense 。
按“。”时 中RichTextBox
,Intellisense 将出现,其中的每个对象都有不同的 Tooltip。
现在工具提示位置是跟随SelectedIndex
我想出了这个代码:
public void SetToolTip(Intellisense intellisenseitem)
{
if (selectedItemIndex == 0)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex, 3000);
}
if (selectedItemIndex == 1)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 15, 3000);
}
if (selectedItemIndex == 2)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 30, 3000);
}
if (selectedItemIndex == 3)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 45, 3000);
}
if (selectedItemIndex == 4)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 60, 3000);
}
if (selectedItemIndex == 5)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 75, 3000);
}
if (selectedItemIndex == 6)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 90, 3000);
}
if (selectedItemIndex == 7)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 105, 3000);
}
if (selectedItemIndex == 8)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 120, 3000);
}
if (selectedItemIndex == 9)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 135, 3000);
}
if (selectedItemIndex == 10)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 150, 3000);
}
if (selectedItemIndex == 11)
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 165, 3000);
}
if (selectedItemIndex >= 12) //still needed to fix
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, this, Width + 3, SelectedItemIndex + 165, 3000);
}
}
问题是当 Intellisense 项目达到 12 以上时(请注意,Intellisense 有一个过滤器可以过滤像 Visual Studio 中的 Intellisense 一样startswith
输入的文本()Richtextbox
),它会自动滚动(因为它达到了最大尺寸)现在问题是 Tooltip 在使用滚动时现在不会跟随其 Selecteditemindex 。
控制智能感知就像一个列表框。(因为我之前提到它是我使用的一个组件)
现在我的问题是如何让工具提示始终遵循SelectedItemIndex
智能感知。