prop einstellen
-
Hallo,
mein user control soll folgende Eigenschaft haben
double[,] mask; public double[,] Mask { get { return mask[,]; } set { } }
-
Das freut uns enorm, das DEIN Usercontrol so eine fantastische Eigenschaft haben soll. Ich bin mehr als Entzückt!
-
Und es ist Sommer...
-
ja nur leider gehts so halt nicht !!
-
double[,] mask; public double[,] Mask { get { return mask; } set { mask = value; } }
-
hey cool. Das klappt.
Jetzt noch eine FRage. Ich weiß schon wie man controls dynamisch erzeugt.
Nur leider kann ich meinen Textboxen keine unterschiedliche namen gebenfor (int j = 0; j < anzahl; j++) { TextBox my = new TextBox(); my.Location = new Point(locx, locy); locx += 40; my.Size = new Size(30, 20); grpBoxMaske.Controls.Add(my); }
-
Pack sie in ein Array oder in eine sonstige Collection
Oder greife einfach über die Controls-Collection darauf zu....
-
ich hab jetzt mal die Beispiele aus der msdn genommen. Da muss man immer den Namen des Control wissen. Aber den hab ich ja net.
private void removeButton_Click(object sender, System.EventArgs e) { if(panel1.Controls.Contains(removeButton)) { panel1.Controls.Remove(removeButton); } }
-
Hallo Benni,
du mußt unterscheiden (lernen), zwischen einem Variablennamen und dem eigentlichen Objekt ('removeButton' ist eine Variable, welche eine Referenz des Controls enthält).
Zum einen könntest du jedem Control eine eindeutige Name-Eigenschaft geben:
textBox.Name = "TextBox" + counter;
und danach dann in der Controls-Collection nach einem speziellen Exemplar suchen:
TextBox textBox = Controls.OfType<TextBox>().FirstOrDefault(x => x.Name == "TextBox42"); if(textBox != null) { // ... }
Oder aber noch besser, packe sie gleich schon in eine dynamische Liste:
List<TextBox> textboxes = new List<TextBox>(); // als Klassenmember(!) for (int j = 0; j < anzahl; j++) { TextBox textbox = new TextBox(); // ... textboxes.Add(textbox); }
Nun kannst du ganz bequem per Index auf diese Liste zugreifen oder aber in einer eigenen Schleife (for bzw. foreach):
foreach(TextBox textbox in textboxes) { if(textBox.Name == "TextBox42") { // ... } }
-
Th69 schrieb:
Hallo Benni,
Zum einen könntest du jedem Control eine eindeutige Name-Eigenschaft geben:textBox.Name = "TextBox" + counter;
[/cs]
Würde das so ausschauen:
Textbox meineBox = new Textbox(); meineBox.Name="TextBox"+counter; //counter=5 // Muss ich hier schon den neuen Namen verwenden ? //also Textbox5.Text="MeinName"; //das Visualstudio will immer noch den alten Namen
-
Ok alles klar.
Im Code kann man immer noch den alten Namen verwenden, obwohl die Textbox eigentlich schon anders heisst