Ich habe eine einfache Anwendung, in der ich alle Menüpunkte hinzugefügt habe, aber sie sind ausgeblendet und deaktiviert. Nach Benutzeranmeldungen muss ich einige von ihnen basierend auf Benutzer aktivieren. Dafür habe ich menuitem.Find (key, true) -Funktion verwendet, um alle Kinder zu suchen, aber es funktioniert nur für 2 Elemente, Ruhe wird nicht gefunden. Unten ist mein Code.winforms menueitem.items.find funktioniert nicht richtig
ToolStripItem[] items= this.menuStrip.Items.Find(row[0].ToString(), true);
hier row [0] enthält Namen von Menüpunkten.
Ich dachte, es gibt einige Unterschiede in der Deklaration dieser Menüpunkte, aber sie sind gleich. Sie wissen nicht, warum es wie dieser :(verhält
EDIT:.
nachdem er vishakh antworten, ich will es machen Klarstellung hier, dass diese Zeile Code in einer Schleife und Variable „Reihe“ ist, bevölkerte vor dieser Zeile neuen Wert zu erhalten gesucht werden. unter kürzerem Code erneut für die Klarstellung.
foreach(var row in dtNames.Rows)
{
ToolStripItem[] items= this.menuStrip.Items.Find(row[0].ToString(), true);
items[0].visible=true;
}
wo erste Spalte jeder Zeile Namen menuitem enthält.
Eine Möglichkeit, diese Situation zu vermeiden, können alle Menüpunkte durchlaufen sein und dann Unterpunkte und sehen, ob ihr Name mit Schlüssel übereinstimmt und es dann sichtbar machen, aber ich möchte wissen, warum finden Funktion nicht ordnungsgemäß funktioniert. – Kashif