Treeview.HideSelection = false; Ancak, seçilen öğenin orijinal seçili renk olarak kalması için odak kaybolduktan nasıl emin olabilirim?C# Odağı kaybettiğinde seçili düğümün vurgulanmasının nasıl sağlandığından nasıl emin olabilirim?
DÜZENLEME:
Ben süreç olayların bir listesini tutan bir form üzerinde bir liste görünümü var. Aynı formdaki Treeview'ın yanı sıra, kullanıcının olayı liste görünümünde sınıflandırmak için tamamladığı bir dizi seçimdir. Ancak, kullanıcı sınıflandırma denetimlerinden birinde bir seçim yaptığında, mavi vurgulanan seçili Treeview öğesi gri renge döner. Aynı rengi mavi yapmak için bu rengi tanımlayan mülkü bulmayı umuyordum.
Herhangi bir öneri.
Güncelleme:
public partial class myTreeView : TreeView
{
TreeNode tn = null;
public myTreeView()
{
InitializeComponent();
}
protected override void OnAfterSelect(TreeViewEventArgs e)
{
if (tn != null)
{
tn.BackColor = this.BackColor;
tn.ForeColor = this.ForeColor;
}
tn = e.Node;
base.OnAfterSelect(e);
}
protected override void OnBeforeSelect(TreeViewCancelEventArgs e)
{
e.Node.BackColor = Color.Green;
e.Node.ForeColor = Color.White;
base.OnBeforeSelect(e);
}
protected override void OnGotFocus(System.EventArgs e)
{
base.OnGotFocus(e);
}
protected override void OnLostFocus(System.EventArgs e)
{
if (tn != null)
{
tn.BackColor = Color.Green;
tn.ForeColor = Color.White;
}
// tn.BackColor = Color.Red;
base.OnLostFocus(e);
}
}
Tüm uygulamaya veya yalnızca belirli bir alana odaklanmaktan mı bahsediyorsunuz? Ayrıca, öğe seçili mi, yoksa kendini seçmeli mi? –
Sana başka sorunu çözmek için çalışıyor ve seçim rengiyle bozuyorsun şüpheli çözmek için nasıl senin fikrin. Bence bu kötü bir fikir. Bunun yerine orijinal sorununuzu sorun. Kesinlikle daha iyi bir çözüm var. –