Buttons verschwinden lassen?



  • Hi,

    also ich habe nun mein programm komplett fertig, und nun probiere ich ein paar mehr Funktionen einzubauen. also ich habe einen button und direkt über den button steht ein linkLabel "Hide". So wie man daraus entnehmen kann möchte ich dass wenn man auf Hide klickt der Button verschwindet und dann hide in "Show" umgeändert wird und genau an die stelle verschoben wird wo der button war, aus den grund weil ich nicht möchte dass dann das Show einfach komisch mitten in der app rumhängt. Also bekanntlicherweise kann man einen Button so verschwinden lassen

    buttonName->Visible = false;
    buttonName->Enabled = false;
    

    nun weiss ich aber nicht wie ich dass einbinden soll, also dass ich das mit einen EventHandler mach und dazu eine "void" erstelle ist mir klar, aber weiter komme ich nicht, wie ich den ablauf machen soll. Könnte mir da einer helfen?

    edit:
    wenn ich wüsste wie man sowas nennt würde ich es selber in der msdn library suchen, wollte ich nur sagen bevor sinnlose "such doch selbst" posts kommen.

    MfG,
    skY



  • Was ist jetzt Dein Problem? Ist das ganze Windows-Forms oder Win-API?



  • win forms

    ich weiss nicht wie ich des machen soll, also ich hab jetzt anstatt einen linkLabel doch einen button genommen. also ich klär euch mal auf:

    // buttonTest
    // 
    this->buttonTest->Location = System::Drawing::Point(12, 38);
    this->buttonTest->Name = L"buttonTest";
    this->buttonTest->Size = System::Drawing::Size(100, 25);
    this->buttonTest->TabIndex = 0;
    this->buttonTest->Text = L"TESBUTTON";
    this->buttonTest->UseVisualStyleBackColor = true;
    
    // buttonHideShow
    // 
    this->buttonHideShow->Location = System::Drawing::Point(12, 12);
    this->buttonHideShow->Name = L"buttonHideShow";
    this->buttonHideShow->Size = System::Drawing::Size(50, 20);
    this->buttonHideShow->TabIndex = 1;
    this->buttonHideShow->Text = L"Hide";
    this->buttonHideShow->UseVisualStyleBackColor = true;
    this->buttonHideShow->Click += gcnew EventHandler(this, &Form1::buttonHide_Clicked);
    
    void buttonHide_Clicked(Object^ pSender, EventArgs^ pArgs)
    {
    	int change = 1;
    
    	if(change == 1)
    		buttonTest->Enabled = false,
    		buttonTest->Visible = false,
    		this->buttonHideShow->Text = L"Show",
    		change = 0;
    
    	if(change = 0)
    		buttonTest->Enabled = true,
    		buttonTest->Visible = true,
    		this->buttonHideShow->Text = L"Hide",
    		change = 1;
    }
    

    also wie man an buttonHide_Clicked sehen kann hab ich des mit einer int variable gemacht mit 0 und 1, also 1 ist dass er den button anzeigen soll und 0 nicht anzeigen, und am ende von if(change == 1) ist change 0. aber weil ja das ziel von den void dingens schon erreicht ist weil er schon herausgefunden hat was change ist, also 1, macht er nicht weiter. nun frage ich euch wie ich dass machen könnte dass er es trotzdem weiter macht.



  • Wie weiter macht? Wer hört denn auf?
    Du willst doch eigentlich nur den Text ändern und den Button sichtbar oder unsichtbar machen, oder?

    Mach doch folgendes

    void buttonHide_Clicked(Object^ pSender, EventArgs^ pArgs) 
    { 
      if(buttonTest->Visible == true)
      {
        buttonTest->Visible = false;
        buttonHideShow->Text = L"Show";
      }
      else
      {
        buttonTest->Visible = true;
        buttonHideShow->Text = L"Hide";
      }
    }
    


  • ja klar, aber ich werde das noch ändern dass ich eine txt datei erstell und mit streamreader und streamwriter dann einfah in die txt datei 1 oder 0 ausles bzw. reinschreib. also dass der benutzer dann wenn er dass programm startet es nicht jedes mal auszuschalten brauch. aber wenn ein user sich nicht entscheiden kann ob er es aus oder anmachen will, klickt er einmal auf show bzw. hide und die app macht des was er will, jedoch nur einmal, bis er nächstes mal wieder das prog startet, dann kann er wieder nur einmal draufklicken und beim zweiten klick auf show / hide tut sich dann garnichts mehr :/, und des möchte ich ändern



  • rofl stimmt, yo ich hab grad erstma nachgeschaut was du da als bsp. geschrieben hast, yo vielen vielen vielen dank. ^^ war grad ne ziemlich stumpfe aktion von mir 😞 ty ty ty 🙂


Anmelden zum Antworten