none
Button mit einem Klick nach unten wandern lassen RRS feed

  • Frage

  • Close!

    Hallo,

    Ich möchte ein Programm mit Windows Forms schreiben, welches einen button hat mit dem text "Mit Klick um eine Position abwärts, Position : 0". Also jedes mal wenn ich drauf klicke soll der button nach unten wandern.

    Ich habe noch den Hinweis bekommen:

    Die Position eines Steuerelements wird durch die Eigenschaft Location bestimmt. Die Koordinaten lassen sich über einen Wert vom Typ Point setzen. Dabei wird zuerst die X-Koordinate angegeben und danach die Y-Koordinate.

    Nun jedoch habe ich keine ahnung wie ich das anstellen soll. :/

    Hoffe ihr könnt mir weiter helfen.


    Mittwoch, 28. Mai 2014 18:41

Antworten

  • Hallo,
    wenn du nur die Y-Koordinate ändern willst, reicht es die Top-Eigenschaft zu ändern:
    button1.Top = button1.Top + 30;
    Dadurch wandert der Button 30 Pixel nach unten.
    Wenn die Position mit gezählt werden soll, musst du den Wert in einer Klassenvariable ablegen:
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    { ++pos;//Zähler erhöhen button1->Text = "Mit Klick um eine Position abwärts, Position : " + pos; button1->Top += 30; } int pos = 0;


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Mittwoch, 28. Mai 2014 20:42

Alle Antworten

  • Hallo,
    wenn du nur die Y-Koordinate ändern willst, reicht es die Top-Eigenschaft zu ändern:
    button1.Top = button1.Top + 30;
    Dadurch wandert der Button 30 Pixel nach unten.
    Wenn die Position mit gezählt werden soll, musst du den Wert in einer Klassenvariable ablegen:
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    { ++pos;//Zähler erhöhen button1->Text = "Mit Klick um eine Position abwärts, Position : " + pos; button1->Top += 30; } int pos = 0;


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Mittwoch, 28. Mai 2014 20:42
  • Danke Tom Lambert!

    Ich habe es zwar nicht so übernommen wie du es geschriben hast aber du hast meine gedanken Blockade gelöst danke dafür!

    Was mir gefehlt hat war eine Globale variable die Mitzählt.

    bei meiner arbeit soll es bei Position 5 wieder oben los gehen und wieder runter laufen also habe ich es nun so gelöst:

    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    					if (pos <= 9){
    
    						if (pos == 4){
    
    							++pos;
    							buttonKlick->Text="Mit Klick um eine Position abwärts. Position : "+pos;
    							buttonKlick->Location = Point(12,12);
    						}
    
    						else {
    
    							++pos;
    							buttonKlick->Text="Mit Klick um eine Position abwärts. Position : "+pos;
    							buttonKlick->Location = Point(12,(buttonKlick->Location.Y+30));
    
    						}
    
    					}
    
    					else
    
    						Close();
    
    	
    					
    
    				 }
    


    und dazu natürlich dan noch eine Globale variable ganz oben.

    Mein Kompleter Quelltext sieht nun so aus:

    int pos =0;			//Variable um die Position zu zählen.
    
    #pragma once
    
    namespace Mit_Klick_abwärts {
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	/// <summary>
    	/// Zusammenfassung für Form1
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    		}
    
    	protected:
    		/// <summary>
    		/// Verwendete Ressourcen bereinigen.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^  buttonBeenden;
    	private: System::Windows::Forms::Button^  buttonKlick;
    	protected: 
    
    
    	private:
    		/// <summary>
    		/// Erforderliche Designervariable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Erforderliche Methode für die Designerunterstützung.
    		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->buttonBeenden = (gcnew System::Windows::Forms::Button());
    			this->buttonKlick = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// buttonBeenden
    			// 
    			this->buttonBeenden->Location = System::Drawing::Point(316, 187);
    			this->buttonBeenden->Name = L"buttonBeenden";
    			this->buttonBeenden->Size = System::Drawing::Size(75, 23);
    			this->buttonBeenden->TabIndex = 0;
    			this->buttonBeenden->Text = L"Beenden";
    			this->buttonBeenden->UseVisualStyleBackColor = true;
    			this->buttonBeenden->Click += gcnew System::EventHandler(this, &Form1::buttonBeenden_Click);
    			// 
    			// buttonKlick
    			// 
    			this->buttonKlick->Location = System::Drawing::Point(12, 12);
    			this->buttonKlick->Name = L"buttonKlick";
    			this->buttonKlick->Size = System::Drawing::Size(379, 23);
    			this->buttonKlick->TabIndex = 1;
    			this->buttonKlick->Text = L"Mit Klick um eine Position abwärts. Position: 0";
    			this->buttonKlick->UseVisualStyleBackColor = true;
    			this->buttonKlick->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(403, 222);
    			this->Controls->Add(this->buttonKlick);
    			this->Controls->Add(this->buttonBeenden);
    			this->Name = L"Form1";
    			this->Text = L"Mit Klick abwärts";
    			this->ResumeLayout(false);
    
    		}
    
    #pragma endregion
    	private: System::Void buttonBeenden_Click(System::Object^  sender, System::EventArgs^  e) {
    
    				 Close();
    
    			 }
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    					if (pos <= 9){
    
    						if (pos == 4){
    
    							++pos;
    							buttonKlick->Text="Mit Klick um eine Position abwärts. Position : "+pos;
    							buttonKlick->Location = Point(12,12);
    						}
    
    						else {
    
    							++pos;
    							buttonKlick->Text="Mit Klick um eine Position abwärts. Position : "+pos;
    							buttonKlick->Location = Point(12,(buttonKlick->Location.Y+30));
    
    						}
    
    					}
    
    					else
    
    						Close();
    
    	
    					
    
    				 }
    	};
    }
    
    

    Dankeschön :)

    Close.

    Freitag, 30. Mai 2014 10:30