Avatar billede dranzer Nybegynder
23. januar 2006 - 08:47 Der er 9 kommentarer og
1 løsning

Kan ikke få programmet til at give mig et navn! C#

Se her jeg har lavet denne kode i Sharpdevelop 2.0.

/*
* Created by SharpDevelop.
* User: Strafferen
* Date: 22-01-2006
* Time: 18:52
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Navne_ider
{
/// <summary>
/// Description of MainForm.
/// </summary>
public class MainForm : System.Windows.Forms.Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}

[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.Run(new MainForm());
}

#region Windows Forms Designer generated code
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.button1 = new System.Windows.Forms.Button();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(117, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(161, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Giv mig en ide til et navne";
this.button1.UseCompatibleTextRendering = true;
this.button1.UseVisualStyleBackColor = true;
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(87, 57);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(241, 30);
this.listBox1.TabIndex = 1;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
this.ClientSize = new System.Drawing.Size(457, 131);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.button1);
this.Name = "MainForm";
this.Text = "Navne ider";
this.Load += new System.EventHandler(this.MainFormLoad);
this.ResumeLayout(false);
}
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
#endregion

void MainFormLoad(object sender, System.EventArgs e)
{

}
}
}


Her er et link til hvordan programmet ser ud når det køre på computeren.

http://www.min-undulat.dk/Giv_Mig_Et_Navn.JPG

Mit program skal kunne give mig forskellige navne når man trykker på Giv mig en ide til et navn.

De navne som den skal kunne komme med, når man trykker på knappen, er dem som jeg har skrevet op inde i koden.
Fordi der kun skal være EN knap hvor man trykker på også kommer den med et nyt navn hver gang man trykker på den.

Men hvis man nu har trykket på knappen og der kommer til at stå "Simon" i boksen, så når man trykker igen så bliver "Simon" sletter og der kommer et andet navn for eksempel "Signe".

Er der nogen der kan hjælp mig med at få lavet så vil jeg blive super glad? Men jeg har noget kode jeg har fået men det er sikkert ikke nok vel?

// 0 til 4
string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };

Random rnd = new Random();

// textBox1.Text = random 0 til 4
textBox1.Text = navne[rnd.Next(0, 4)];

På forhånd tak. ;o)
Avatar billede mikkel_sommer Nybegynder
23. januar 2006 - 09:15 #1
private void button1_Click(object sender, System.EventArgs e)
{
  string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };

  Random rnd = new Random();

  textBox1.Text = navne[rnd.Next(0, 4)];
}

burde kunne gøre det ...
Avatar billede mikkel_sommer Nybegynder
23. januar 2006 - 09:16 #2
Men det ville nok være mere optimalt at placere
string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };
uden for metoden ellers vil string arrayet blive "lavet" på ny hver gang der klikkes på knappen...
Avatar billede innercitydk Nybegynder
23. januar 2006 - 09:20 #3
Tilføj følgende kode under

//
// button1
//
this.button1.Click += new System.EventHandler(this.button1_Click);

I form1 klassen tilføjes følgende metode:

private void button1_Click(object sender, EventArgs e)
{
// 0 til 4
string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };
Random rnd = new Random();

// textBox1.Text = random 0 til 4
textBox1.Text = navne[rnd.Next(0, 4)];
}


Hele koden skal være som følgende:

/*
* Created by SharpDevelop.
* User: Strafferen
* Date: 22-01-2006
* Time: 18:52
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Navne_ider
{
/// <summary>
/// Description of MainForm.
/// </summary>
public class MainForm : System.Windows.Forms.Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
}

[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.Run(new MainForm());
}

#region Windows Forms Designer generated code
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.button1 = new System.Windows.Forms.Button();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// button1
//
this.button1.Click += new System.EventHandler(this.button1_Click);
this.button1.Location = new System.Drawing.Point(117, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(161, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Giv mig en ide til et navne";
this.button1.UseCompatibleTextRendering = true;
this.button1.UseVisualStyleBackColor = true;
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(87, 57);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(241, 30);
this.listBox1.TabIndex = 1;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
this.ClientSize = new System.Drawing.Size(457, 131);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.button1);
this.Name = "MainForm";
this.Text = "Navne ider";
this.Load += new System.EventHandler(this.MainFormLoad);
this.ResumeLayout(false);
}
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
#endregion

void MainFormLoad(object sender, System.EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
// 0 til 4
string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };
Random rnd = new Random();

// textBox1.Text = random 0 til 4
textBox1.Text = navne[rnd.Next(0, 4)];
}

}
}


Vi har først tilføjet en Button1 Click event. Derefter har vi lavet en metode der skal udføres ved OnClick på knappen..

Vh Nicki
Avatar billede innercitydk Nybegynder
23. januar 2006 - 09:20 #4
Mikkel du har glemt event handleren

Vh
Avatar billede mikkel_sommer Nybegynder
23. januar 2006 - 09:33 #5
Ja okay men gik udfra at hans værktøj genererede den automatisk når han klikkede på knappen i design vinduet....
Avatar billede dranzer Nybegynder
23. januar 2006 - 14:41 #6
Jeg fik at vide af mit program at fejl var:

// textBox1.Text = random 0 til 4
textBox1.Text = navne[rnd.Next(0, 4)];
}

Så prøve jeg at gøre så det så såten ud:

// textBox1.Text = random 0 til 4 textBox1.Text = navne[rnd.Next(0, 4)];
}

Så virket det. Men når jeg trykker på knappen "Giv mig en ide til et navn", Så Sker der ingen ting der kommer intet navn frem! Der sker ikke noget.
Her er et eksempel på noget af kode. Så kan i sige mig om jeg har rette det forker side den ikke giver mig noget navn:

private void button1_Click(object sender, EventArgs e)
{
// 0 til 4
string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };
Random rnd = new Random();

// textBox1.Text = random 0 til 4 textBox1.Text = navne[rnd.Next(0, 4)];
}

}
}
Avatar billede mikkel_sommer Nybegynder
23. januar 2006 - 14:53 #7
Hvis det står præcist som du har skrevet det her er "textBox1.Text = navne[rnd.Next(0, 4)];" jo også udkommenteret...

Hvis du skifter til design vinduet og dobbeltklikker på knappen "Giv mig en ide til et navn" så sørger den for at oprette eventhandleren og at du kommer det rigtige sted hen.

Der paster du så følgende ind:

string[] navne = { "Simon", "Signe", "Benny", "viggo", "hugo" };
            Random rnd = new Random();

            textBox1.Text = navne[rnd.Next(0, 4)];
Avatar billede dranzer Nybegynder
23. januar 2006 - 18:54 #8
Hej det virker som det skal det er jeg super glad for tak!
Avatar billede nielle Nybegynder
23. januar 2006 - 18:59 #9
Hvis "hugo" nogen sinde skal med er det:

textBox1.Text = navne[rnd.Next(0, 5)];
Avatar billede mikkel_sommer Nybegynder
24. januar 2006 - 08:37 #10
Det lyder godt, her kommer så lige et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger chef for Lokal IT i hovedstadsområdet

Nextway Software A/S

Software Architect