Frage von Dominsch, 27

C# ListBoxItem aus anderer Form heraus markieren?

Hallo,

ich würde gerne ein Item in meiner ListBox per Button-Click aus einer anderern Form heraus markieren.

Mein Code: 1. Form: ListBox vorhanden, Item mit "Ich" auch vorhanden

  1. Form: Form1 n = new Form1(); n.listBox1.SelectedIndex = n.listBox1.FindString("Ich");

Es passiert aber nichts! :)

Vielen Dank :)

Antwort
von CrystalixXx, 17

Ich würde so ein Problem über Events lösen. In der zweiten Form (wo du festlegst, welches Item markiert werden soll) löst du ein Event aus, bei dem du in den EventArgs den Name des zu markierenden Items übergibst. In deiner Hauptform, wo du deine zweite Form instanziierst, kannst du das Ereignis der zweiten abonnieren. Dann kannst du dort das Item markieren.

Kommentar von CrystalixXx ,

Das wäre dann ungefähr so wie unten stehender Code. Ich habe das auf die Schnelle zusammengeschrieben, kann gut sein, dass dort noch der ein oder andere Fehler ist.

Form1:

private Form2 frm;

public Form1()
{
InitializeComponent();

frm = new Form2();
frm.SendItem += Form2_SendItem;
}

private void button1_Click(object sender, EventArgs e)
{
frm.Show();
}

private void Form2_SendItem(string itemName)
{
for (int i = 0; i <= listBox1.Items.Count - 1; i++)
{
if (listBox1.Items[i].Equals(itemName))
listBox1.SetSelected(i, true);
}
}

Form2:

public event SendItemEventHandler SendItem;
public delegate void SendItemEventHandler(string itemName);

public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (SendItem != null)
{
SendItem(textBox1.Text);
}
}
Kommentar von Dominsch ,

Vielen Dank für deine Antwort :) Werde das so übernehmen? Darf ich dich bei weiteren C#-Fragen kontaktieren? :)

Kommentar von CrystalixXx ,

Ja klar, wieso nicht?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten