20. februar 2007 - 12:39Der er
15 kommentarer og 1 løsning
Kan ikke få mit listview til at fungere helt.
Hejsa.
Jeg har et lidtview, hvor jeg lister nogle menupunkter i mit program.
Jeg vil så gerne lave et kald hver gang et punkt klikkes, og det virker sådan set også fint nok...
Men alt efter hvilket punkt man har trykket på, skal en ny form åbnes. Hvordan gør man det? Jeg har følgende kodestykke, men jeg har problemer med at hitte ud af hvordan jeg får oprettet en reference til den nye form.
Navnet på den nye form ligger jeg i TAG feltet for hvert menupunkt.
Min tag værdi er f.eks. : frm_form2 Kan det virkelig ikke lade sig gøre at bruge den information til at angive navnet på den form der skal åbnes ved tryk på knappen?
Ved godt jeg kunne skrive :
if(LWI1.tag = "form2") { form2 newform = new form2; newform.showdialog(); } else { if (form LWI1.tag = "form3") { form3 newform = new form3; newform.showdialog(); } }
Men det holder jo ikke, hvis jeg har 50 menupunkter.
Bruger bare følgende kode, men synes nu stadig at der må findes en nemmere måde at gøre det på. Nu har jeg ikke så mange menupunkter, men havde jeg haft 100 punkter ville det jo blive vildt meget kode jeg skulle skrive :
ListView.SelectedListViewItemCollection LWC1 = listView1.SelectedItems; Form form; foreach (ListViewItem LWI1 in LWC1) { int Frm_Name = LWI1.IndentCount; switch (Frm_Name) { case 0: form = new frm_kalk_newkalk(); break;
case 1: form = new frm_kalk_totalprisoversigt(); break;
case 2: form = new frm_kalk_dokalk(); break;
case 3: form = new frm_kalk_ops_senarios(); break; } form.ShowDialog();
}
}
form.ShowDialog skal kun skrives der hvis det er sikkert der altid bliver vist en når løkken køres.. ellers skal den ind før break i hver af dem.
men mener godt du kan bruge form som den samme variabel.
foreach (ListViewItem LWI1 in LWC1) { int Frm_Name = LWI1.IndentCount; switch (Frm_Name) { case 0: frm_kalk_newkalk nf0 = new frm_kalk_newkalk(); nf0.ShowDialog(); break; case 1: frm_kalk_newkalk nf1 = new frm_kalk_newkalk(); nf1.ShowDialog(); break; case 2: frm_kalk_dokalk nf2 = new frm_kalk_dokalk(); nf2.ShowDialog(); break; case 3: frm_kalk_totalprisoversigt nf3 = new frm_kalk_totalprisoversigt(); nf3.ShowDialog(); break; case 4: frm_kalk_ops_manuellepriser nf4 = new frm_kalk_ops_manuellepriser(); nf4.ShowDialog(); break; case 5: frm_kalk_ops_senarios nf5 = new frm_kalk_ops_senarios(); nf5.ShowDialog(); break; }
Så det vil sige at jeg ikke bruger TAG værdien alligevel, men det er jo også mindre vigtigt. Var bare lige min første tanke til en ID værdi for hvert menupunkt, men ingen grund til at skrive 10 bogstaver når man kan nøjes med 1 tal værdi.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.