Autor Beitrag
Talemantros
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: Di 20.01.15 19:55 
Hallo,
ich möchte gern ein Fenster einblenden, wo der Benutzer eine Eingabe machen soll
Das Fenster wollte ich anzeigen lassen mit:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
AusgangsbehaelterSteuerungEingabe myEingabe = new AusgangsbehaelterSteuerungEingabe(1);
myEingabe.ShowDialog();

if (myEingabe.DialogResult == DialogResult.OK)
{
    machine = myEingabe.Machine;

    MsgAusgabe.ShowInformation(machine.ToString());                        
}


Die Ausgabe dient hier nur dem Test.

Im Aufgerufenen Fenster selber habe ich einen Button auf DialogResult = Ok gestellt und er hat eine TextBox für die Eingabe

Die TextBox soll dann die Property füllen, die ich wieder ausgeben/weiter verwenden möchte

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
        int showMdul = 0;
        string machine = string.Empty;
       
        public AusgangsbehaelterSteuerungEingabe(int uebergabe)
        {
            InitializeComponent();
            showMdul = uebergabe;
        }

        public string Machine
        {
            get
            {
                return machine;
            }
            set
            {
                machine = txtScanfeldMaschine.Text;
            }
        }


Leider ist die Ausgabe leer.
Muss ich noch irgendwas beachten, dass der Inhalt der TextBox in der Property landet?!

Gruß
Daniel
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Di 20.01.15 20:18 
Hallo,

Bist du dir sicher, dass dein Setter stimmt?
Zitat:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        public string Machine
        {
            get
            {
                return machine;
            }
            set
            {
                machine = txtScanfeldMaschine.Text;
            }
        }


Meiner Ansicht nach macht das nämlich wenig Sinn. Wenn du die Text Eigenschaft einer Textbox nach außen führen willst, musst du das so machen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        public string Machine
        {
            get
            {
                return txtScanfeldMaschine.Text;
            }
            set
            {
                txtScanfeldMaschine.Text = value;
            }
        }


Der Getter wird immer aufgerufen, wenn die Eigenschaft abgefragt (read) wird und der Setter wenn die Eigenschaft festgelegt (write) wird.
Also
ausblenden C#-Quelltext
1:
myEingabe.Machine = "Jetzt wird der Setter aufgerufen"					

ruft den Setter auf und führt den Code darin aus.
Und
ausblenden C#-Quelltext
1:
string machine = myEingabe.Machine;					

Ruft den Getter auf und führt dessen Code aus.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Talemantros Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 444
Erhaltene Danke: 2

Win7 Proff 64bit
C# (VS2013)
BeitragVerfasst: Mi 21.01.15 11:26 
Hallo C#,
es ist unfassbar, wie lange ich da drüber geschaut habe ohne es zu sehen.
Vielen Dank.

Gruß
Daniel