Вы используете implementation 'com.android.support:support-compat:28.0.0'
, который имеет v4
ListViewCompat
, а не v7
пригодный для занятий класс.
Используйте этот
import android.support.v4.widget.ListViewCompat
blockquote>После комментария
Если вы хотите экстент, а с
com.android.support:support-compat:28.0.0
это невозможно, вместо этого удалите эту зависимость.
ListViewCompat
доступен как не финальный класс вappcompat-v7:26.1.0
, изменяется
implementation 'com.android.support:appcompat-v7:27.1.1'
на
implementation "com.android.support:appcompat-v7:26.1.0"
и импортирует
]android.support.v7.widget.ListViewCompat
Добавьте объект Tooltip в форму, а затем добавьте обработчик событий для CheckedListBox.MouseHover, который вызывает метод ShowToolTip (); Add MouseMove event of your CheckedListBox which has the following code:
//Make ttIndex a global integer variable to store index of item currently showing tooltip.
//Check if current location is different from item having tooltip, if so call method
if (ttIndex != checkedListBox1.IndexFromPoint(e.Location))
ShowToolTip();
Then create the ShowToolTip method:
private void ShowToolTip()
{
ttIndex = checkedListBox1.IndexFromPoint(checkedListBox1.PointToClient(MousePosition));
if (ttIndex > -1)
{
Point p = PointToClient(MousePosition);
toolTip1.ToolTipTitle = "Tooltip Title";
toolTip1.SetToolTip(checkedListBox1, checkedListBox1.Items[ttIndex].ToString());
}
}
Придумано или нет; это то, что есть ...
Я не знаю более простого способа, чем вы уже описали (хотя я бы, вероятно, использовал экземпляр всплывающей подсказки, а не создавал новый постоянно). Если у вас есть статьи, в которых это показано, то используйте их - или используйте сторонний элемент управления, который поддерживает это изначально (ни один прыжок в голову).
В качестве альтернативы, вы можете использовать ListView
с флажками вместо этого. Этот контроль имеет
встроенная поддержка для подсказок .