Autor Beitrag
frenchcancan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Di 14.06.11 12:29 
Hallo
ich habe eine Form "deviceConfigForm"
Diese enthält 2 Controls: ein Treeview("trvPolosConfig" ) und ein flowlayoutPanel("flpPolosConfig").
Beide werden erst während der Laufzeit erstellt.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
public partial class deviceConfigForm : Form
    {

        TreeRestore trvPolosConfig = new TreeRestore();
        public dynamicFlowLayoutPanel flpPolosConfig = new dynamicFlowLayoutPanel();
      ......


Der Treeview zeigt in Baumform alle Parameter eines Gerätes.
Wenn man einen Knoten des vorletzten Ebene vom Treeview anklickt, sollen in FlowLayoutPanel alle untergeordnete childs des Knoten angezeigt werden.


um nicht zuviel Code in meiner WindowsForm zu haben, habe ich eine neue Treeviewklasse erstellt,TreeRestore, in der die Funktion Afterselect überschrieben wird.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
{
    public class TreeRestore : TreeView
    {
        public TreeRestore()
        {

        }

        protected override void OnAfterSelect(TreeViewEventArgs e)
        {
            Form currForm;
            TreeNode node = null;
            if (!(e.Node is TreeNode))
                return;
            else
                node = (TreeNode)e.Node;

            currForm = e.Node.TreeView.FindForm();

            foreach (TreeNode child in node.Nodes)
            {
                     currForm.??? // hier Funktion, die neue Textboxen in den FlowLayoutPanel Control hinzufügen soll  ;

             }
                       
        }


und das klappt nicht, weil ich nicht weiß, wie ich von dieser Klasse TreeRestore.cs aus auf das Feld flpPolosConfig und dessen Methoden zugreifen kann.

Kann mir jemand einen Tip geben, wie ich es machjen kann? Es ist anderes als die Lösung von Formular zu einem anderen Formular kommunizieren.
Vielen Dank im Voraus

frenchcancan
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 14.06.11 13:16 
Hallo,

es ist trotzdem ein "normales" "Form to Form"-Kommunikationsproblem, d.h. entweder benutze in deiner TreeRestore-Klasse ein eigenes Ereignis, welches von der Form-Klasse aus abonniert wird oder aber übergebe der Klasse eine Referenz auf das FlowLayoutPanel (als Eigenschaft).

Hier noch mein Standard-Link: Kommunikation von 2 Forms ;-)
frenchcancan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Di 14.06.11 13:28 
OK, danke schön