Как я могу программно нажать TreeView TreeNode, таким образом, это кажется выделенным в списке и запускает событие AfterSelect?

Этот T может быть любого типа, расширяющего Object, и ваш код не является безопасным. Если что-то, кроме HashMap<String, String>, передано вам, вы можете получить ClassCastException. Но использование оператора instance of предотвратит это. Но все равно любой может отправить любой объект в ваш метод. Так что непроверенное предупреждение просто утверждает, что.

Использование экземпляра здесь кажется мне немного неловким. Скорее, если вы хотите добавить запись в существующую карту, вы можете изменить объявление вашего универсального метода следующим образом:

public <S, T extends Map<S, S>> void addEntryToMap(T x, S key, S value) {
    x.put(key, value);
}

Этот код безопасен по типу, более чистый и элегантный, чем описанный выше пример проверки. .

9
задан ThomW 8 May 2009 в 17:16
поделиться

3 ответа

Это потому, что TreeView не имеет фокуса? Изменяет ли значение False для свойства TreeView HideSelection наблюдаемое поведение?

6
ответ дан 4 December 2019 в 13:49
поделиться

После установки SelectedNode. Попробуйте выбрать treeView. Все равно у меня сработало.

private void button1_Click(object sender, EventArgs e)
{
this.treeView1.SelectedNode = this.treeView1.Nodes[1];
this.treeView1.Select();
}
5
ответ дан 4 December 2019 в 13:49
поделиться

Под выделением я предполагаю, что вы хотите сделать текст жирным. Это не так элегантно, как некоторые другие технологии на стороне клиента, но вы можете обработать изменяемый узел и выделить выбранный узел жирным шрифтом, например

treeNode.Font = new Font(treeNode.Font, treeNode.Font.Style | treeNode.Bold);
0
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: