Hallo, habe die Hilfe u bereits googelt durchsucht, aber nicht das richtig passende gefunden. Ich möchte ein Treeview transparent machen, weil ich unter dem TV ein panel mit einem Backgroundimage habe.
Fehlermeldung: "Das Steuerelement unterstützt keine transparenten Hintergrundfarben."
Es muss doch sicherlich noch einen anderen Weg geben...thx im voraus
Hallo,
so viel ich weiß, funktioniert das nur mit einer einfachen Ableitung:
public class TransparentTreeView : TreeView
{
public TransparentTreeView()
: base()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
}
}
Dann sollte
transparentTreeView1.BackColor = Color.Transparent;
einwandfrei funktionieren.
Danke für den Tip. Ist das egal, wo ich die abgeleitete Klasse einbaue? Tue mich da noch etwas schwer...Wie bewerkstellige ich das meine Komponente TreeView auf die abgeleitete zugreift?
Habe es zB jetzt so gemacht:
public class TransparentTreeView : TreeView
{
public TransparentTreeView()
: base()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
}
}
private void SubForm_Load(object sender, EventArgs e)
{
TransparentTreeView tr = new TransparentTreeView();
tr.Location = new Point(0, 0);
tr.Size = this.ClientSize;
tr.Nodes.Add("Erde");
TreeNode[] nodesErde = new TreeNode[] { new TreeNode("Amerika"), new TreeNode("Asien"), new TreeNode("Afrika"), new TreeNode("Australien"), new TreeNode("Europa") };
tr.Nodes[0].Nodes.AddRange(nodesErde);
// Element 'Europa' ergänzen
TreeNode europa = tr.Nodes[0].Nodes[4];
europa.Nodes.Add("England");
europa.Nodes.Add("Frankreich");
europa.Nodes.Add("Deutschland");
europa.Nodes.Add("Italien");
// Element 'Deutschland' ergänzen
TreeNode deutschland = europa.Nodes[2];
deutschland.Nodes.Add("Bonn");
deutschland.Nodes.Add("Aachen");
deutschland.Nodes.Add("Hamburg");
deutschland.Nodes.Add("Berlin");
// Element 'Amerika' ergänzen
TreeNode amerika = tr.Nodes[0].Nodes[0];
amerika.Nodes.Add("USA");
amerika.Nodes.Add("Kanada");
amerika.Nodes.Add("Mexiko");
// Element 'USA' ergänzen
TreeNode usa = amerika.Nodes[0];
usa.Nodes.Add("Miami");
usa.Nodes.Add("New York");
usa.Nodes.Add("San Francisco");
usa.Nodes.Add("Seattle");
this.Controls.Add(tr);
tr.BackColor = Color.Transparent;
}
Der Rahmen für das TreeView wird angezeigt. Ist auch transparent, aber ich seh meinen Baum nicht.