Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 15:42 
hallo,

je nach einstellung, was ich anklicke, sollen nur bestimmte Tabpages geladen werden.

ausblenden C#-Quelltext
1:
2:
3:
4:
meinprojekt.TabPages.Add(tabPage1); // so geht

string string_aus_meine_base = "tabPage1";
meinprojekt.TabPages.Add(string_aus_meine_base); // Problem
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 16:18 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 18:12 
kannst du bitte etwas genauer werden.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 18:53 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 19:27 
ich glaube wir reden aneinander vorbei oder ich habe es falsch erklärt.

tabPage 1 bis 5 sind voll mit Buttons / Textboxen usw...
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
// Programmstart
mypro.TabPages.Remove(tabPage1);
mypro.TabPages.Remove(tabPage2);
mypro.TabPages.Remove(tabPage3);
mypro.TabPages.Remove(tabPage4);
mypro.TabPages.Remove(tabPage5);

// der User loggt sich ein
// laut user abc soll er NUR 1 und 2 sehen.
// Postgresql antwortet mit...
string a = "tabPage1";
string b = "tabPage2";


mypro.TabPages.Add(tabPage1); // <--- so wird das Tab richtig geladen
mypro.TabPages.Add(tabPage2); // <--- so wird das Tab richtig geladen

mypro.TabPages.Add(a); // so habe ich nur ein neuer Tab mit weißem Inhalt, der Tab heist tabPage1
mypro.TabPages.Add(b); // so habe ich nur ein neuer Tab mit weißem Inhalt, der Tab heist tabPage2
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 26.07.17 19:35 
Zitat:
mypro.TabPages.Add(a); // so habe ich nur ein neuer Tab mit weißem Inhalt, der Tab heist tabPage1


Das ist genau das Verhalten das in einfachen Worten in der Doku so beschrieben ist.
Zitat:
"Erstellt eine Registerkarte mit dem angegebenen Text und fügt es der Auflistung hinzu.
text
Der auf der Registerkarte anzuzeigende Text.."

Warum erwartest du was anderes?

Es gibt keinen magischen Zusammenhang zwischen dem string "tabPage1" und der Instanz einer TabPage die zufällig auch an einer Variablen hängt die tabPage1 heißt.

Wenn du TabPages ein/ausblenden willst benutze die Instanzen der jeweiligen Pages. Irgendwelche strings helfen nicht.
Anstatt Add wäre aber vermutlich Insert sinnvoller um positionsgerecht aus und einblenden zu können, sonst ändert sich unter Umständen die Reihenfolge der Tabs.

Für diesen Beitrag haben gedankt: tomycat
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.07.17 21:05 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: tomycat
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 26.07.17 21:45 
Zitat:
Visible, auf die man von außen nicht zugreifen kann. Warum?


Weil es diese Eigenschaft von Control erbt aber dann doch nicht bei jedem Control sinvoll nutzbar ist. Darum werden solche Properties üblicherweise zumindest versteckt da man sie nicht entfernen kann (das wäre gegen jedes OO Grundprinzip). Da gibt es aber auch eine Menge anderer Properties von Control die nicht bei jeder Ableitung noch Sinn machen. Z.B. Text, Anchor, Dock etc. Auf Windows API Ebene ist es ja genauso. Nicht jede Windows Nachricht die du da an ein Control senden kannst hat auch irgendeine Auswirkung wie du festgestellt hast.

Und warum ist das so? Historie ... Das Tab Control brauchte vermutlich als es erfunden wurde (so Mitte der 90er mit dem Rest der Common Controls) kein ausblenden/einblenden der Tabs oder es wurde am Anfang nicht für relevant genug gehalten. Das nachträglich zu ändern hätte vermutlich einige Breaking Changes zur Folge, ich denke da zum Beispiel an die Indexierung der Tabs. Das Feature ist daher wohl nie als so relevant angesehen worden um ne Menge Code der funktioniert kaput zu machen nur weil es so etwas schöner ginge.

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Do 27.07.17 19:54 
meine Lösung:
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:
27:
         private void reiter_laden(string a, string rname)
        {
          
            // ... Switch on the string.
            switch (a)
            {
                case "tabPage1":                                    
                    xx.TabPages.Add(tabPage1);
                    if (rname != "")
                        tabPage1.Text = rname;
                    break;
                case "tabPage2":                 
                    xx.TabPages.Add(tabPage2);
                    if (rname != "")
                        tabPage2.Text = rname;
                    break;
                case "tabPage3":                 
                    xx.TabPages.Add(tabPage3);
                    if (rname != "")
                        tabPage3.Text = rname;
                    break;
                case "tabPage4":                
                    xx.TabPages.Add(tabPage4);
                    if (rname != "")
                        tabPage4.Text = rname;
                    break;
        }
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 27.07.17 20:44 
- Nachträglich durch die Entwickler-Ecke gelöscht -