Txt soubor si načtěte do paměti, přistupovat k němu za běhu stojí spoustu času. Př: Vytvořte si objekt:
public class Zak
{
public Zak(string fullName, string trida)
{
FullName = fullName;
Trida = trida;
}
public string FullName { get; set; }
public string Trida { get; set; }
//String popis třídy -> bude zobrazen v listboxu
public override string ToString()
{
return FullName;
}
}
nebo by pro takto jednoduchý příklad šla použít KeyValuePair<string, string> a listboxu nastavit DisplayMember na Key. Do kolekce Items listboxu načtete tyto objekty:
var zaci = new List<Zak>();
using (var reader = new StreamReader(fileName))
{
string line;
var lineNumber = 0;
var name = string.Empty;
while ((line = reader.ReadLine()) != null)
{
if ((lineNumber % 2) == 0)
//sudý řádek (jméno)
name = line;
else
{
//lichý řádek (třída)
var z = new Zak(name, line);
zaci.Add(z);
}
lineNumber++;
}
}
//načtení do listboxu
var arZaci = zaci.ToArray().Clone();
listBox1.Items.Clear();
listBox1.Items.AddRange((object[]) arZaci);
Na událost listboxvaluechanged načtete odsah textboxu
private void OnListBoxSelectedValueChanged(object sender, EventArgs e)
{
var lst = sender as ListBox;
var itm = lst.SelectedItem as Zak;
textBox1.Text = itm.Trida;
}
|