2009-11-16 7 views
13

Ich versuche auf die Texteigenschaft eines Steuerelements von program.cs zuzugreifen, und es besagt, dass es aufgrund geschützter Ebene nicht zugänglich ist. Wie kann ich das bitte reparieren?Warum ist das Steuerelement aufgrund seines Schutzniveaus nicht zugänglich?

+1

Was versuchen Sie zu erreichen? –

+2

FWIW, eine Frage wie diese bedeutet, dass Sie einen Pfad der sehr engen Kopplung gehen (Zugriff auf myForm.myControl.Text außerhalb von myForms Code ist eine schlechte Idee). –

+0

ist das eine schlechte Idee, nur weil es unsicher sein kann? oder gibt es andere Gründe? –

Antwort

24

Dies ist die Standardeigenschaft für Steuerelemente und kann gelöst werden, indem Sie für das Formular, das das angegebene Steuerelement enthält, in die Entwurfsansicht wechseln und anschließend die Modifiers-Eigenschaft des Steuerelements in Öffentlich oder Intern ändern. Das soll es tun! :)

+3

Hinweis: nur um dies zu betonen, da dies vom Fragesteller sehr unklar scheint, ist dies die Instanz des * Controls selbst *, die geschützt ist (dh die Variable, die das Steuerelement enthält), nicht das * ' .Text' property *, das öffentlich ist. – Abel

+1

danke Abel. –

4

Kontrolle Schutz Ebene gelöst

Zum Designer-Datei Suchsteuerung von ID beispiels txtModel Änderung geschützt Modifikator öffentliche Modifikator

+2

Das ist keine gute Idee. Besser ist der Zugriff auf den Wert der Kontrolle durch die Eigenschaft der Klasse, wo die Kontrolle verwendet wird. – eridanix

+1

Warum ist das kein guter Ansatz? Kurz erklären – Asad

+0

fehlten die Design-Dateien ... Danke für den Zeiger –

0

Das Konzept hinter der Schutzstufe. Wie wir im objektorientierten Paradigma gelernt haben, behalten Sie Ihre Klassenmitgliedervariablen privat und setzen Sie oder holen Sie sie von der Eigenschaft. Thats, warum es keine gute Annäherung ist

Verwandte Themen