02. januar 2006 - 10:47Der er
5 kommentarer og 1 løsning
Spørgsmål om Arraylist, ComboBox, Form og Click_Event
Hej
jeg har kodet et lille program i Java som jeg så nu har forsøgt at oversætte til C#, uden succes.
Koden:
using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace Lottotal { public partial class Lottotal : Form { private static String version; public Lottotal() { InitializeComponent();
//Sætter tekst i label version = "Version: 0.1"; lblVersion.Text = version;
//Tilføjer tal til ComboBoxen CBoxAntalSedler.Items.Add(1); CBoxAntalSedler.Items.Add(2); CBoxAntalSedler.Items.Add(3); CBoxAntalSedler.Items.Add(4); CBoxAntalSedler.Items.Add(5); CBoxAntalSedler.SelectionStart = 1; }
int a = Convert.ToInt32(CBoxAntalSedler.SelectedItem); for (int i = 0; i < a; i++) { ArrayList liste = talfinder(); lblSeddel.Text = "Tal: " + liste.Count; Console.Write(liste.ToString()); panSedler.Controls.Add(lblSeddel); } }
private static ArrayList talfinder() { Random generator = new Random(); ArrayList lst = new ArrayList(); int a = 7; //Finder 7 tal mellem 1 og 36 og fyld det på arraylisten for (int i = 0; i < a; i++) { int num1 = generator.Next(35) + 1;
//Tilføjer tal til arraylisten if (lst.Count == 0) { //smider det udtrukne tal "num1" i arraylisten lst.Add(num1); } else { //tjekker om tallet eksisterer i forvejen if (taltjek(num1, lst) == true) { //tallet eksisterer allerede a++; } else { //tallet eksisterer ikke så vi tilføjer det lst.Add(num1); } } }
//Sorterer listen lst.Sort(); return lst; }
private static Boolean taltjek(int nyttal, ArrayList lst) { //skriver tal i arraylisten ud Boolean nr = false;
//Løber listen igennem og tjekker om tallet (nyttal) eksisterer i listen foreach (Object item in lst) { if (item.Equals(nyttal)) { nr = true; } } return nr; }
1. Jeg kan ikke få programmet til at skrive den enkelte array i min arrayliste ud.
2. Når jeg har trykket på min knap og kørt koden så kan jeg ikke køre koden igen. Dvs jeg er nødt til at lukke programmet ned og starte det igen for at kunne køren Click event'en på knappen igen. :/
3. Min ComboBox er tom når jeg starter programmet + jeg kan skrive i den. Hvordan kan jeg gøre sådan at man ikke kan skrive i den og at den står på et bestemt felt som default (som f.eks. "1")
4. Man kan resize vinduet. Dette vil jeg ikke have at man skal kunne :)
Her er en rettet udgave: Jeg udskriver her til en TextBox: Der er rettet en del i dine metoder. Og ja jeg har ikke dybtetestet eksemplet men det ser ud til at virke.
public partial class Lottotal : Form { public Lottotal() { InitializeComponent();
// Overvej at bruge NumericUpDown control i stedet for følgende: this.comboBoxAntalSedler.Items.Add(1); this.comboBoxAntalSedler.Items.Add(2); this.comboBoxAntalSedler.Items.Add(3); this.comboBoxAntalSedler.Items.Add(4); this.comboBoxAntalSedler.Items.Add(5); this.comboBoxAntalSedler.SelectedIndex = 1; }
Takker for svaret.. Jeg gider ikke at bare kopiere din kode da jeg jo ikke lærer så meget af det, så jeg overfører din kode langsomt over i min så jeg kan bedre forstå sammenhængen :)
whoopsy.. troede da bestemt jeg havde accepteret.. :/ men nu er det så gjort :)
Synes godt om
Ny brugerNybegynder
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.