Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Panel ein-/ausblenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
24.10.2006, 10:19 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hi,

ich hab folgendes Problem.Ich will je nachdem, was für ein Tab der User in einem Panel selektiert ein anderes Panel woanderst anzeigen. Ich hab es mit

C++:
            if(readPanel.Visible)
            {
                writePanel.Show();
                readPanel.Hide();
            }
            else
            {
                readPanel.Show();
                writePanel.Hide();
            }


versucht, auch mit readPanel.Visible = false; und writePanel.Visible = true; und danach ein Update() gemacht, das geht allerdings gar nicht. Der Code oben funktioniert nur genau einmal - d.h. wenn ich das erste mal den Panel wechseln lassen will, geht es einwandfrei. Beim nächsten mal wird aber gar kein Panel angezeigt, als hätte ich beide ausgeblendet. Hat jemand ne Idee ?
Ist C#
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.10.2006, 11:21 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Hmm wo wird der Code da denn ausgeführt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.10.2006, 12:34 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Ausgeführt wird er jedesmal, hab ich getesttet. Im TagChanged eventhandler
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.10.2006, 12:38 Uhr
ao

(Operator)


Vielleicht noch ein .BringToFront() an dem Panel, das du zeigen willst?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.10.2006, 13:24 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Hmm komisch. Ich hab das gerade mal bei mir in einer Anwendung getestet und da hat es ausgereicht die Visible Eigenschaft des Buttons auf true oder false zu setzten um den anzuzeigen oder nicht anzuzeigen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.10.2006, 13:26 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hmm,etwas hat sich an der ausgangssituation verändert - writePanel wird nie true bei Visible.
Die Updates hab ich einfach nur so mal reingemacht,ich weiß, das ich sie nicht alle brauche:

C++:
            if(readPanel.Visible)
            {
                readPanel.Visible = false;
                writePanel.Visible = true;
                writePanel.Show();
                readPanel.Update();
                writePanel.Update();
                this.Update();
                writePanel.BringToFront();
                Console.WriteLine(readPanel.Visible + " - " + writePanel.Visible);
            }
            else
            {
                writePanel.Visible = false;
                readPanel.Visible = true;
                readPanel.Update();
                writePanel.Update();
                this.Update();
                readPanel.BringToFront();
                Console.WriteLine(readPanel.Visible + " - " + writePanel.Visible);
            }

--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.10.2006, 14:01 Uhr
ao

(Operator)


Also, laut .NET-Doku sind .Show() und .Visible=true äquivalent.

Ich hab gerade mal ein Förmchen gebaut mit einem Tab-Control mit zwei Tab-Pages, und auf die Pages verschiedene Elemente gezogen. Weiter hab ich nix gemacht, nicht eine Zeile Code geschrieben, und das Umschalten der Tab-Seiten genügt, um die jeweiligen Elemente erscheinen zu lassen.

Ich hab hier Visual Studio 2005.

Wenn bei dir solche Klimmzüge nötig sind, nehme ich fast an, dass du im Form-Designer was falsch gemacht hast.

Dieser Post wurde am 24.10.2006 um 14:02 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.10.2006, 14:04 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von J-jayz-Z:
Im TagChanged eventhandler

Was ist das denn für ein Panel? Ich hab mal eins auf ne Form gezogen, aber das hat keinen solchen Event...


Was passirt denn wenn du dir einen Button erstellst und beim klicken darauf die Visible Eigenschaften deiner Panels änderst. Funktioniert es dann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.10.2006, 14:30 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


TabIndexChanged ändert ein Panel das nicht innerhalb des TabPanels ist sondern daneben - sry, wenn ich mich da etwas unglücklich ausgedrückt hab

Ich hab hier auch Visual Studio 2005 Pro
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
24.10.2006, 15:23 Uhr
ao

(Operator)



Zitat von J-jayz-Z:
TabIndexChanged ändert ein Panel das nicht innerhalb des TabPanels ist sondern daneben - sry, wenn ich mich da etwas unglücklich ausgedrückt hab

Ich habs mal nachgebaut, und stimmt, jetzt seh ichs auch.

Und ich weiß auch, warum. Es liegt am Designercode. Du hast die Panels mit der Maus übereinandergelegt, und der Designer hat verstanden, dass das eine Panel das Kind vom anderen sein soll. Ausschnitt aus InitializeComponent:

C++:
            //
            // panel1
            //
            this.panel1.Controls.Add(this.button3);
            this.panel1.Controls.Add(this.panel2);  // <<<--- das darf nicht! Auskommentieren!
            this.panel1.Location = new System.Drawing.Point(276, 25);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(200, 100);
            this.panel1.TabIndex = 3;


Stattdessen hier Zeile einfügen:

C++:
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(727, 348);
            this.Controls.Add(this.panel1);
            this.Controls.Add(this.panel2);  // <<<--- diese Zeile einfügen!
                                 // Achtung: nicht this.panel1.Controls......!
            this.Controls.Add(this.tabControl1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.tabControl1.ResumeLayout(false);
            this.tabPage1.ResumeLayout(false);
            this.tabPage2.ResumeLayout(false);
            this.panel1.ResumeLayout(false);
            this.panel2.ResumeLayout(false);
            this.ResumeLayout(false);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: