Я использую следующий MouseMove
обработчик событий, чтобы показать содержимое текстового файла в виде всплывающей подсказки на CheckedListBox, и есть объект текстового файла, помеченный для каждого зарегистрированного элемента управления.
private void checkedListBox1_MouseMove(object sender, MouseEventArgs e)
{
int itemIndex = checkedListBox1.IndexFromPoint(new Point(e.X, e.Y));
if (itemIndex >= 0)
{
if (checkedListBox1.Items[itemIndex] != null)
{
TextFile tf = (TextFile)checkedListBox1.Items[itemIndex];
string subString = tf.JavaCode.Substring(0, 350);
toolTip1.ToolTipTitle = tf.FileInfo.FullName;
toolTip1.SetToolTip(checkedListBox1, subString + "\n... ... ...");
}
}
}
Проблема в том, что мое приложение замедляется из-за частых движений мыши на зарегистрированном списке.
В качестве альтернативы я подумал, что мне следует использовать MouseHover
событие и его обработчик. Но я не смог выяснить, какой именно проверенный элемент списка списков элементов списков включен мой MusePointer. Как это:
private void checkedListBox1_MouseHover(object sender, EventArgs e)
{
if (sender != null)
{
CheckedListBox chk = (CheckedListBox)sender;
int index = chk.SelectedIndex;
if (chk != null)
{
TextFile tf = (TextFile)chk.SelectedItem;
string subString = tf.FileText.Substring(0, 350);
toolTip1.ToolTipTitle = tf.FileInfo.FullName;
toolTip1.SetToolTip(checkedListBox1, subString + "\n... ... ...");
}
}
}
Здесь int index
возвращает -1, а chk.SelectedItem
возвращает null
.
Каким может быть решение проблемы такого типа?