Checkbox inaktiv setzen ohne Enable

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von SaturnV.

    Checkbox inaktiv setzen ohne Enable

    Hallo!
    Ich hab wieder mal ne Frage!
    Ist es möglich eine Checkbox ohne Enable = True zu deaktivieren, denn ich möchte nicht, dass die Haken in den Checkboxen grau hinterlegt sind.
    Ich dachte an ReadOnly = True, aber das gibt es nur bei TextBoxen.
    Oder gibt es die Möglichkeit, wenn ich die Checkbox doch Enable = True setze, dass der Haken trotzdem schwarz bleibt???

    Danke!!
    naja. ich hätte da nur wieder Dirty-Dinger drauf. (bin kein DB Spezialist)

    ..Achtung!!! Jetzt kommt reine Theorie...
    die Checkbox hat doch auch ein TAG
    kann man nicht die Info, die an Checked gebunden ist auch zusätzlich an das TAG binden...
    (Dann hast du praktisch die Zustand wie er sein muss)
    und beim Checkevent. schaust du einfach nach was im TAG steht und setzt es wieder darauf.
    Dann bleibt Checked immer checked.. und unchecked immer unchecked.

    (aber ich bin mir 100% sicher, das dies nicht im Sinne des Erfinders ist)

    Warte mit der Relisierung erstmal, bis sich einer meldet, der sich wirklich damit auskennt :)
    Oder würde es mit MousePosition gehen?
    D. h. gehe ich mit der Mouse auf dieABC. Checkbox, so soll sie Enableeigenschaft auf True gesetzt werden, bewege ich die Mouse wieder weg, dann False.
    Ich hätte es mir z. B. so vorgestellt. Aber geht leider auch nicht!! :(

    VB.NET-Quellcode

    1. If MousePosition.X = 112 And MousePosition.Y = 58 Then
    2. BriefCheckBox.Enabled = False
    3. Else
    4. BriefCheckBox.Enabled = True
    5. End If

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SaturnV“ ()

    SaturnV schrieb:

    dass der Haken trotzdem schwarz bleibt
    Überlege Dir zunächst, welchen Aufwand Du treiben willst. Bei einem gewissen Label sollte Schluss sein, denn Du holst Dir mehr Fehler an Bord als das ganze Wert ist.
    ---
    Hat der User eine andere Möglichkeit zu erfahren, dass dieser Haken nicht aktiv ist?
    Mach Dir ggf. eine OwnerDraw CheckBox, da kannst Du 2 Bilder malen in Abhängigkeit des Status.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also da fallen mir eine Menge Controls ein! Label, Combobox, OwnerDraw CheckBox, Textbox etc. :)
    Nötigenfalls fragst Du halt in einem kurzen knackigen Code ab, ob der Nutzer die notwendigen Rechte hat, einen Wert zu ändern. Falls nicht, setzt Du ihn auf Empty oder was weiß ich auch immer... :D

    Die einfachste Methode ist, dem Nutzer einfach gar keine Möglichkeit zB. durch ein Label zum Ändern der Eigenschaften zu geben. Vielleicht muss er die Information über die Eigenschaft (ob etwas true oder false ist) nicht einmal wissen!?

    Denk' nochmal drüber nach!
    Eeeeiiiiiiinen hab ich noch :)

    Keine Ahnung, ob das ganze sich mittlerweile erledigt hat, aber es gibt noch eine Möglichkeit, die den Anprüchen des TE gerecht wird (haken soll schwarz bleiben) und den allgemeinen Erwatungen des Users, das "unklickbare" Checkboxen ausgegraut sind.

    Warum nicht das MouseENTER und mouseLEAVE-Ereignis nutzen.
    Beim MouseENTER auf enabled=false stellen, und bei Leave wieder auf Enable=True stellen.

    Dann bleibt das Ding schön schwarz, und falls der User heimlich doch mit der Maus drüberfährt, wird es ausgegraut, und so weiß der User wenigstens ansatzweise, das ein Klicken nichts bringen wird.
    hallo RoulettePilot !

    Danke für den Hinweis.
    Funktioniert aber leider nicht so. Denn, wenn ich mit der Mouse auf die Checkbox gehe, wird sie zwar Enable. Aber wenn ich dann klicke, kann ich immer noch Hacken setzen.

    VB.NET-Quellcode

    1. Private Sub TelefonCheckBox_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TelefonCheckBox.MouseLeave
    2. abcCheckBox.Enabled = True
    3. End Sub
    4. Private Sub BriefCheckBox_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles BriefCheckBox.MouseEnter
    5. abcCheckBox.Enabled = False
    6. End Sub


    Oder gibt es was, wenn die Mouse bei der Checkbox ist, dass dann das Klicken der Mouse deaktiviert wird??





    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SaturnV“ ()