Hallo leutz,
ich progge nun seit Samstag C# - und bin somit neuling.
Die Sprache is sehr intuitiv und es lässt sich grösstenteils ohne Bücher etc. proggen.. wie gesagt.. grösstenteils.
Ich habe folgendes Problem:
Ich progge was für PDA's.
Es sollen MenuItems Dynamisch erzeugt werden.. SIEHE DATEIANHANG
Die meniItemN.Text hol der sich dynamisch aus der Regsitry.
Und auch für die SubDyn_menititems.
Da wo Wurzel 1 (== menuItem1) steht, hab ich in der IDE eingegeben (String "Wurzel 1" evtl. zur Laufzeit geändert). Die "click action" usw für meniitem1 hat Visual studio alles für mich registriert.
Alle anderen hol ich dynamisch aus der Registry:
string [] bla = Registry.CurrentUser.GetSubKeys..
for (i=0, länge.bla; i++){
menuitem2 = new menuitem();
menuitem2.Text = bla[i];
menuitem1.menuitems.add(menuitem2);
} // SO baue ich die Dynamiche 1 bis Dynamische n
//analog mit SubDynamisch 1 bis SubDynamisch n
string [] bla_sub = Registry.CurrentUser.GetSubKeys..
for (i=0, länge.bla_sub; i++){
menuitem3 = new menuitem();
menuitem3.Text = bla_sub[i];
menuitem2.menuitems.add(menuitem3);
}
//Und es sieht dann am ende auch so aus wie im Bild.
//"Dynamisch n" und "SubDynamisch n" können unterschiedlich sein.. also
//(dyn.n != subdyn.n)
Mein Prbolem is nun:
Ich will, wenn ich was aus der SubDynamisch n anklicke, diesen entsprechenden String von menuitem3.text z.B. "SubDynamisch 2" haben; am besten mit dem übergeorneten menuitem2.text hier z.b: "Dynamisch 3"...
ZB sollen die Dynamischen (menuitem2) sein Opel, VV, Mercedes, ...
und die SubDynamischen (menuitem3) dann jeweils zB für Opel --> Vectra, Signum, Astra, ...
//ich habe eine hinzugefügt:
menitem3.click += new system.Eventhandler(this.menuitem3_click);
//....
//dann später:
private void menuItem3_click (..) {
//blabla..
}
Ich kriege eine NullPointerException..
Da ich menuItem2 und menuItem3 per hand gecoded hab.. denke ich, dass es daran liegt, dass ich die nicht korrekt registriert habe?
Und och eine frage:
kann ich, anstatt die menuItems bei der dynamischen konstruktion jedesmal zu überschreiben ein array anlegen? also:
string [] bla_sub = Registry.CurrentUser.GetSubKeys..
int laenge = bla_sub.LENGTH;
menuitem [laenge] menuitem3 = new menuitem();
for (i=0, laenge; i++){
menuitem3[i].Text = bla_sub[i];
menuitem2.menuitems.add(menuitem3[i]);
}
geht das? oder habt ihr evtl. eine viel elegantere lösung?
wenn ich dann zB auf Astra klicke soll dann menuitem3.text geholt werden.. aber da ich ja in der forschleife (weiter oben) jedesmal meuitem3 = new erzeuge... wird der werd doch gelöscht?
vielen dank im voraus und mfg
Einloggen, um Attachments anzusehen!