Jag undrar om man kan få textboxar i en windowsapplikation att "höra ihop", så att de bara skiljs genom ett id, eller så. Det jag vill kunna göra, är att kunna fylla t.ex. 10 olika rutor, med en for-loop. För detta krävs ju att det enda som skiljer de olika rutorna är ett nummer. Detta vore givetvis bra om det gick att få även på t.ex. labels, knappar, bildrutor etc. Du kan ju sätta faste IDn om du vill och sedan söka efter dina kontroll med FindControl(<id>) Om du skapar dina textboxar dynamiskt och lägger till dem kan du ju samtidigt spara dem i en ArrayList, sen kan du ju bara loopa igenom ArrayListen... Ok, det känns som om det är vad jag söker, men eftersom jag är ny i C#-programmering, har jag inte koll på hur jag ska göra detta... Har ni något tips/förslag? Nåt sånt här kan man ju göra: Tack så mycket Johan, vid första anblicken så fungerar det ju, och det verkar vara precis vad jag vill ha. Ska kolla igenom koden, och se om jag fixar modifieringar. Vad jag inte riktigt är med på är varför man skall lägga dem i en ArrayList när man redan läggt dem i en ControlCollection som man sedan kan rota igenom? Det kan ju finnas hundratals kontroller på ett formulär, så av prestandaskäl kan det vara bättre att ha en egen array för dessa kontroller som man vet att man vill loopa igenom. Jag tycker dessutom att det är en enklare lösning, jämfört med att behöva kolla på kontrollens namn eller Tag-property, samt dess typ för varje kontroll i loopen. Om man har hundratals kontroller i en web form så är säkerligen de flesta textBoxar. Jag ser inte riktigt problemet. Visst kan man gå igenom och lyfta ut kontrollerna från ControlCollection, men jag förstår inte att det skulle vara värre med en ArrayList. Har man ett något mer avancerat gränsnitt än bara allt i en panel eller direkt på formen. Ska du då loopa igenom alla panels etc? Jag ser inte riktigt varför det skulle vara såååå farligt att stoppa det i en arraylist? Speciellt inte om man är nybörjare. Du kan ju alltid lämna ett kodförslag så kan han ju välja vilken lösning som passar honom bäst och är enklast att anpassa till sin egen kod...Textrutor som "hör ihop"
Är det möjligt, och isåfall, hur?Sv: Textrutor som "hör ihop"
Om du då döper dem till "ID"+ i <-- i är increment.
Så kan du genom att plocka alla kontroller kolla om deras ID = "ID" + i;
Det finns lite olika sätt. Annars kan du söka på alla kontroller som är av typen TextBox och plocka ut dess värde.
JNSv: Textrutor som "hör ihop"
Sv: Textrutor som "hör ihop"
Sv: Textrutor som "hör ihop"
<code>
public class Form2 : System.Windows.Forms.Form
{
private System.ComponentModel.Container components = null;
private ArrayList myTextBoxes=new ArrayList();
public Form2()
{
InitializeComponent();
Button button1=new Button();
button1.Location=new Point(5,5);
button1.Text="Klicka här";
button1.Click += new System.EventHandler(this.button1_Click);
int pos=button1.Height + 10;
this.Controls.Add(button1);
for(int i=0;i<10;i++)
{
TextBox txt=new TextBox();
txt.Location=new Point(10,pos + i*txt.Height+5);
txt.Text=i.ToString();
this.Controls.Add(txt);
myTextBoxes.Add(txt);
}
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Name = "Form2";
this.Text = "Form2";
}
#endregion
private void button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i<myTextBoxes.Count;i++)
{
TextBox txt=(TextBox)myTextBoxes[i];
MessageBox.Show(txt.Text);
}
}
}
</code>Sv: Textrutor som "hör ihop"
Sv: Textrutor som "hör ihop"
JNSv: Textrutor som "hör ihop"
Sv: Textrutor som "hör ihop"
Och kapslar man in dem i ex en Panel så är det bara att plocka kontrollerna från den, råkar det finnas en button eller två i den så gör inte det så mkt, då är det ju värre att ha en arrayList med ett gäng textBox kontroller. Där sidan även har alla de andra kontrollerna.
JNSv: Textrutor som "hör ihop"