2010-06-21 2 views

Antwort

26

Wie es in folgendem Forum Post sagt:

Im Rahmen eines TextBox, erlaubt nur lesbar der Benutzer den Fokus auf und wählen zu setzen und den Text kopieren, aber nicht es ändern. Eine deaktivierte TextBox erlaubt keine Interaktion. Verwenden Sie ReadOnly, wenn Sie Daten haben, die der Benutzer sehen und kopieren soll, aber nicht ändern. Verwenden Sie ein deaktiviertes Textfeld, , wenn die Daten, die Sie anzeigen, nicht für den aktuellen Status eines Dialogfelds oder Fensters gelten.

entnommen aus: MSDN Forums

+0

Sie haben die Antwort unten, ich werde nur hinzufügen, dass Sie immer deaktivieren können, aber nicht alle Steuerelemente haben ein "readonly" -Tag, das ist schade. Ich rate Ihnen, sie nicht auf einer Seite zu mischen (ohne triftigen Grund), da dies einen Benutzer verwirren könnte. – Mawg

1

aktiviert Gibt an, ob die Interaktion Benutzer erlaubt ist. Wenn ein Steuerelement deaktiviert ist, werden keine UI-Ereignisse generiert.

ReadOnly bestimmt, ob der Benutzer den Inhalt des Steuerelements bearbeiten kann. Zum Beispiel kann ein ReadOnly TextBox nicht bearbeitet werden, aber Sie können immer noch darauf klicken, wählen Sie den darin enthaltenen Text usw.

2

ReadOnly Ich assoziiere in der Regel mit einem TextBox oder anderen Steuerelement, das Text enthält; es diktiert, ob der Benutzer den Text ändern kann, der von der Steuerung angezeigt wird. Der Benutzer kann jedoch immer noch den Text auswählen (z. B. um ihn in ein anderes Programm zu kopieren und einzufügen).

Enabled steuert im Wesentlichen, ob eine Benutzerinteraktion mit der Steuerung möglich ist oder nicht. Zum Beispiel kann ein Button mit Enabled == false nicht angeklickt werden; a CheckBox mit Enabled == false kann nicht umgeschaltet werden, etc. Beachten Sie, dass eine TextBox mit Enabled == false auch nicht seinen Text ausgewählt haben kann (das wäre Benutzerinteraktion).

Darüber hinaus führen Steuerelemente mit Enabled == false keine Ereignisse im Zusammenhang mit Benutzerinteraktion wie Click.

0

Wenn Sie ein Textfeld mit einer Bildlaufleiste als Beispiel nehmen, erlaubt ReadOnly dem Benutzer nicht, Text zu bearbeiten, aber die Bildlaufleiste ist noch aktiv (denken Sie an Lizenzboxen in Installationsprogrammen). Enabled = false bewirkt, dass das gesamte Steuerelement deaktiviert wird, nicht nur der Textbearbeitungsbereich.

1

Einige Steuerelemente, z. B. Schaltflächen, können nur aktiviert oder deaktiviert werden. Ein deaktiviertes Steuerelement gibt einen visuellen Hinweis, dass mit dem gerade nicht interagiert werden kann (normalerweise durch Ergrauen/Ausblenden). Andere können auch schreibgeschützt sein, da sie in irgendeiner Weise mit interagiert werden können, aber nicht bearbeitet. Zum Beispiel ist ein Auf-Ab-Steuerelement oft so, das heißt, Sie können die Tasten drücken, um den Wert zu ändern, aber nicht durch normales Tippen zu bearbeiten.(Es ist auch möglich, Steuerelemente zu verwenden, mit denen Sie niemals interagieren können, die aber immer noch deaktiviert werden können. Eine Beschriftung kann immer noch ausgegraut sein, um anzuzeigen, dass ein ganzer Bereich der GUI momentan nicht verwendbar ist angenehmer visueller Effekt als nur das Ändern der Kontrollen, die interaktiv sind.)

Es ist fast immer der Fall, dass deaktiviert bedeutet, dass ein Steuerelement auch schreibgeschützt ist. Ich habe ein paar Fälle gesehen, in denen das nicht stimmte, und es fühlte sich immer mehr wie ein Käfer an als alles andere. Es empfiehlt sich, die Zustände als einen Dreizustandswert zu betrachten, bei dem einer der Zustände für einige Steuerelemente nicht verwendet wird.

0

Darüber hinaus lese ich here, dass, wenn ein Textfeld mit Enabled = "false" markiert ist, sein Wert nicht im Poststatus über Postbacks beibehalten wird.

+4

Die Frage lautet: * WinForms *, nicht * WebForms * –