У меня есть некоторый код, используемый для установки текста всплывающей подсказки в моей программе.По сути, метод получает точку, соответствующую положению курсора, а все доступные подсказки под курсором объединяются и показываются пользователю в одной подсказке.
То, что я пытаюсь сделать, - это создать строку, содержащую весь текст из каждой подсказки под курсором, а затем установить текст подсказки с этой встроенной строкой.Моя проблема в том, что я хочу построить эту строку полностью, прежде чем продолжить в цикле foreach.См. Мои комментарии в коде:
public void Show(Point point)
{
bool bInOldRegion = RectangleHitTest(point, oldRegion);
if (!bInOldRegion)
{
oldRegion = new Rectangle(0, 0, 0, 0);
bool toolTipUsed = false;
var sb = new System.Text.StringBuilder();
foreach (DictionaryEntry entry in toolTipRegions)
{
var tte = (ToolTipEntry)entry.Value;
Rectangle rect = tte.region;
if (RectangleHitTest(point, rect))
{
sb.Append(tte.text + "\n");
}
// I want to finish looping over every entry value and
// building the final string before
// continuing with the "toolTip.SetToolTip" part below
toolTip.SetToolTip(m_control, tte.text);
toolTip.Active = true;
oldRegion = rect;
toolTipUsed = true;
break;
}
if (!toolTipUsed)
{
toolTip.Active = false;
}
}
}
Мне нужно держать все это в цикле foreach, потому что мне нужно разрываться в конце после того, как подсказка установлена, чтобы подсказка отображалась правильно.