Diskuze: ListBox
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


MultiColumn u ListBoxu slouží pouze k tomu, že se při vertikálním
zaplnění, data zobrazují v novém sloupci.
Použij ListView s nastavením View =
Details
poradis prosim jeste jak udelat....
mam tabulku klientu...kazdy zaznam ma svoje id a pak udaje,...jmeno, prijmeni..a
dalsi udaje.
Jmeno a prijmeni chci zobrazit v list view a kdyz bude uzivatel klikat na data v
listview tak aby se dalsi udaje ukazovali v textboxech. Takze kde v tom listview
najdu to id...kdyz ho tam vlastne nezobrazuju. Pokud se ptam blbe tak pardon

tady máš velmi jednoduše řešenou ukázku, seznamu lidí v listu a zobrazovaný v ListView včetně editace položek
public partial class Form1 : Form
{
List<Person> persons = new List<Person>();
public Form1()
{
InitializeComponent();
listView1.View = View.Details;
listView1.VirtualMode = true; // virtuální režim
listView1.FullRowSelect = true;
//názvy sloupců
listView1.Columns.Add("Jméno");
listView1.Columns.Add("Příjmení");
//vytvoření lidí
persons.Add(new Person(2001, "Karel", "Novák"));
persons.Add(new Person(2002, "Josef", "Sláma"));
persons.Add(new Person(2003, "Hana", "Slámová"));
//nastavíme mu velikost
listView1.VirtualListSize = persons.Count;
}
/// <summary>
/// vypisujeme položku
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = persons[e.ItemIndex].name;
lvi.SubItems.Add(persons[e.ItemIndex].surname);
e.Item = lvi;
}
/// <summary>
/// načtení označené položky do textboxů
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//pokud je nejaká položka označena..
if(listView1.SelectedIndices.Count > 0)
{
//načteme hodnoty do textboxů
textBoxName.Text = persons[listView1.SelectedIndices[0]].name;
textBoxSurname.Text = persons[listView1.SelectedIndices[0]].surname;
}
else
{
textBoxName.Clear();
textBoxSurname.Clear();
}
}
/// <summary>
/// změna položky
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonModify_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0)
{
persons[listView1.SelectedIndices[0]].name = textBoxName.Text;
persons[listView1.SelectedIndices[0]].surname = textBoxSurname.Text;
listView1.Refresh();
}
else MessageBox.Show("Není zvolena položka pro editaci!");
}
}
public class Person
{
public int id;
public string name;
public string surname;
public Person(int id, string name, string surname)
{
this.id = id;
this.name = name;
this.surname = surname;
}
}
jak vidíš, můžeš si vybrat co s třídy Person zobrazíš v listu.
Mám to takhle... je databaze klientu, kde je id, jmeno, prijmeni, telefon, email.. a dalsi udaje. v ListView ukazu jen seznam...prijmeni a jmeno. Jak pak zobrazit v textboxech ty i ty ostatni udaje
public partial class Form1 : Form
{
SqlConnection conn = new SqlConnection("Data
Source=DESKTOP-DH9TGH2\\SQLEXPRESS;Initial Catalog=DataLife;Integrated
Security=True");
public Form1()
{
InitializeComponent();
lvClienti.View = View.Details;
lvClienti.Columns.Add("Příjmení");
lvClienti.Columns.Add("Jméno");
lvClienti.FullRowSelect = true;
}
private void Form1_Load(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("Select * from client order by lastname asc",
conn);
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("Select id,lastName, firstName from
client order by lastName asc",conn );
DataTable dt = new DataTable();
sda.Fill(dt);
SqlDataReader drr = cmd.ExecuteReader();
if (drr.HasRows)
{
while (drr.Read())
{
ListViewItem item = new ListViewItem(drr["lastName"].ToString());
item.SubItems.Add(drr["firstName"].ToString());
lvClienti.Items.Add(item);
}
}
}
private void lvClienti_MouseClick(object sender, MouseEventArgs e)
{
}
private void lvClienti_SelectedIndexChanged(object sender, EventArgs
e)
{
//pokud je nejaká položka označena..
if (lvClienti.SelectedIndices.Count > 0)
{
}
else
{
txtJmeno.Clear();
txtPrijmeni.Clear();
}
}
}
}
Pro vkládání kódu slouží tlačítko </>
Právě pro to, jsem tu dal ukázku s ListView, který pracuje virtuálně. Takže všechna data můžeš načíst do nějaké kolekce a do ListView pak vykreslovat z kolekce to, co uznáš za vhodné.
Nebo se podívej ještě na DataGridView, ten se při přístupu k databázím používá spíš, než ListView.
Zobrazeno 8 zpráv z 8.