Forums Neueste Beiträge
 
Tags Keywords

List

06/04/2010 - 11:51 von Uli Münch | Report spam
Hallo NG,

ich habe ein Problem dessen Lösung meine derzeitigen Kenntnisse in C# etwas
überfordern.

In einer Form wird ein grosser Teil der Controls zur Laufzeit hinzugefügt.
Der User hat die Möglichkeit die Reihenfolge festzulegen. Ich rufe diese
Daten vom SQL-Server ab berechne die Position und füge das Control hinzu.
Der Name für das Control kommt ebenfalls aus der Tabelle des SQL-Servers.

Stark verkürzt sieht es im Code so aus

string controlname = leser.GetString(2)
.
UserControl1 dummyname = new UserControl1();
...
Control.Add(dummyname)
..
dummyname,name = controlname
..
Funktioniert schon fast perfekt.

Was ich bisher noch nicht hinbekommen habe, wie ich in einer Liste
Object-Referenzen so speichern kann, dass ich auf die Controls zugreifen
kann.
z.B. so

.Controls.Remove(ControlListe[0])

Es würde mich freuen wenn Ihr mir ein paar Tipps für eine Lösung geben
könnt.


mfG
Uli Münch
 

Lesen sie die antworten

#1 Stefan Hoffmann
06/04/2010 - 12:16 | Warnen spam
hallo Uli,

On 06.04.2010 11:51, Uli Münch wrote:
Was ich bisher noch nicht hinbekommen habe, wie ich in einer Liste
Object-Referenzen so speichern kann, dass ich auf die Controls zugreifen
kann.
Es würde mich freuen wenn Ihr mir ein paar Tipps für eine Lösung geben
könnt.



namespace WindowsFormsApplication1
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

public partial class Form1 : Form
{
List<Control> controls = new List<Control>();

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Button button = new Button();
button.Text = "dynamic";
button.Left = 10;
button.Top = 10;
button.Height = 21;
button.Width = 100;
button.Click += new EventHandler(this.button_Click);
this.controls.Add(button);
this.Controls.Add(button);
}

private void button_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach (Control ctl in this.Controls)
{
var dynamic = this.controls
.Where(c => c.Equals(ctl)).Count();
sb.AppendLine(
"[" + ctl.Name + "] : " + ctl.Text + " : " + dynamic);
}

MessageBox.Show(sb.ToString());
}
}
}



mfG

Ähnliche fragen