Gå til innhold

C#: Får ikke til å skifte navn på C# knapp. Nybegynner.


Anbefalte innlegg

Hei! Jeg har akkurat begynt med C# koding så det kommer sikkert flere emner om dette fra meg. Fant heller ikke på en bedre tittel til emnet. Jaja nok om det. Det jeg lurte på var hva jeg har gjort feil i denne koden. Takker på forhånd :)

 

 using System;
  using System.Windows.Forms;
  using System.Drawing;

  class FormWithWorkingButton : Form
  {
   // The constructor method for our class
   public FormWithWorkingButton()
   {
	   // Set the window title
	   this.Text = "Simple form with working button";

	   // Add a button and hook it up to an event handler method

	   Button button1 = new Button();
	   button1.Text = "Click me";
	   button1.Click += new System.EventHandler(Button1_Click);
	   this.Controls.Add(button1);

   }

   static void Main()
   {
	   // Start a new instance of a forms application, using our class above
	   Application.Run(new FormWithWorkingButton());
   }

   // An event handler that will be run when the button is clicked
   void Button1_Click(object sender, EventArgs e)
   {
	   // Change the window title
	   this.Text = "Button was clicked";
   }
   {
	   //Changing the button title
	   Button button1 = new Button();
	   button1.Text = "You";
   }

Endret av adrianpip2000
Lenke til kommentar
Videoannonse
Annonse

Hjelper ikke hvor mange klammer det er når han lager en ny knapp.

 

Når du skriver Button button1 = new Button(); så har du plutselig en ny instans av knappen.

For å endre navnet på knappen du allerede har så må du hente den ut fra formen. Dette er litt vanskelig da du lager knappen i runtime, men siden du gjør dette i "Click"-eventen til knappen så er ditt "sender" objekt knappen din.

 

	void Button1_Click(object sender, EventArgs e)
{
	// Change the window title
	this.Text = "Button was clicked";

	//Changing the button title
	//Button button1 = new Button(); <- ikke slik
	Button button1 = (Button)sender; // <- men slik.
	button1.Text = "You";
}

Du må kjøre en cast på sender siden du vet at det er en Button, men det vet ikke C# uten at du sier det.

 

-C-

Lenke til kommentar

Fjern noen klammer:

 

// An event handler that will be run when the button is clicked
   void Button1_Click(object sender, EventArgs e)
   {
	   // Change the window title
	   this.Text = "Button was clicked";
	   //Changing the button title
	   //Button button1 = new Button();
	   Button button1 = sender as Button;
	   button1.Text = "You";
   }

Lenke til kommentar

Har prøvd dette men nå fungerer ikke "Debugging" knappen: BILDE

 

Jeg bruker denne koden:

 

using System;
using System.Windows.Forms;
using System.Drawing;

class FormWithWorkingButton : Form
{
// The constructor method for our class
public FormWithWorkingButton()
{
	// Set the window title
	this.Text = "Simple form with working button";

	// Add a button and hook it up to an event handler method

	Button button1 = new Button();
	button1.Text = "Click me";
	button1.Click += new System.EventHandler(Button1_Click);
	this.Controls.Add(button1);

}

static void Main()
{
	// Start a new instance of a forms application, using our class above
	Application.Run(new FormWithWorkingButton());
}

// An event handler that will be run when the button is clicked
void Button1_Click(object sender, EventArgs e)
{
	// Change the window title
	this.Text = "Button was clicked";

	//Changing the button title
	//Button button1 = new Button(); <- ikke slik
	Button button1 = (Button)sender; // <- men slik.
	button1.Text = "You";
}
}

Endret av adrianpip2000
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...