Autor Beitrag
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.11.08 14:38 
Hi,
ich hab mir nen eigenen Dialog gebastelt. Dieser zeigt mir in einer TreeView meine Ordner an. Jetzt möchte ich den Pfad des Ordners den man ja mit treeview.selectednode.fullpath abrufen kann. Das Problem das ich habe ist, dass ich von einer anderen Klasse auf diesen Dialog zugreifen möchte und den Pfad zurückgeben möchte. Dieser wird bzw soll dann weiter verarbeitet werden. Wie kann ich von der einen Klasse auf meinen Pfad zugreifen.

ALs Beispiel:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Meine Klasse in der der Treeview erzeugt wird:

public CustomFolderBrowserDialog()
        {
            InitializeComponent();
            triStateTreeView1.Nodes.Clear();

            String path = "C:\\Daten";

            triStateTreeView1.Nodes.Add(path);
            
            PopulateTreeView(path, triStateTreeView1.Nodes[0]);
            
        }


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Klasse in der ich dann auf den Pfad zugreifen möchte:

public string ShowCustomFolderBrowserDialog()
        {
            CustomFolderBrowserDialog customfolderbrowserdialog = new CustomFolderBrowserDialog();
            
            if (customfolderbrowserdialog.ShowDialog() != DialogResult.OK)
            {
                MessageBox.Show("You have canceled the File Selection""Notification", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
           [u] return customfolderbrowserdialog.;//customfolderbrowserdialog.SelectedFolderPath();[/u] //hier hab ich mein Problem
        }


Wer kann mir weiterhelfen?

Grüße
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 03.11.08 14:42 
Du solltest deinem Dialog eine public Property (ohne Setter) wie "SelectedPath" geben. Darin kannst du dann den Wert des TreeViews zurückgeben und auf die Property in der zweiten Klasse zugreifen.

_________________
>λ=
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.11.08 14:49 
Genau das habe ich versucht bin aber nicht weitergekommen.

Hab versucht über eine Methode

ausblenden C#-Quelltext
1:
2:
3:
4:
public void SelectedPath()
{
  string pfad = treeview.selectednode.fullpath;
}


das zu realisieren aber ich glaub ich hab da was voll falsch gemacht.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 03.11.08 15:08 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Darin kannst du dann den Wert des TreeViews zurückgeben und auf die Property in der zweiten Klasse zugreifen.

Du gibst aber nichts zurück, siehe "void", und besetzt es nicht als Eigenschaft (Property), sondern als Methode. Du brauchst vor allem einen Rückgabewert! So wird ein Schuh draus:
ausblenden C#-Quelltext
1:
2:
3:
4:
public string SelectedPath
{
    get { return treeview.selectednode.fullpath; }
}

Das zeigt nochmals: Grundlagen auch der OOP studieren! Jürgen

PS. Ob Du es als Eigenschaft oder als Methode regelst, ist nebensächlich. Da Du aber genau einen Wert haben willst, liegt Eigenschaft näher.
hauke1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.11.08 15:27 
Hi, habs kurz bevor du deine Lösung gepostest hast es alleine hinbekommen, habs ein bisschen anders gemacht,

mach es jetzt mit
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public string FolderPath()
        {
            string folder = triStateTreeView1.SelectedNode.FullPath;
            return folder;
        }


Funktioniert ebenfalls.

Grüße und Danke