Hallo,
ich bin ein ziemlicher Anfänger und brauche Eure Hilfe. Es geht um folgendes: In einer Checkbox steht Autositze auf False und der Text, beim überschreiten der Länge, des dazu vorgesehenen Feldes wird an einem "Leerzeichen" gebrochen. Ich muss jetzt nun die Länge des sichtbaren Text wissen, um den MouseClick nur auf Checkbox und den Text festzulegen (und nicht auf freien Bereich links, der wg. Zeilenumbruches entsteht. Länge des Textes und MouseClick festzulegen kann ich. Das Problem liegt in dem Zeilenumbruch. wie kann ich feststellen, nach welchem Wort Umbruch stattfindet?
Vielen Dank für Eure Hilfe!
Ich glaube da ist ein Bild hilfreich. Ich wüsste nämlich gerade nicht wo links Platz entsteht wenn Text umbricht.
Nicht links sondern rechts. sorry.
Hier sind Bilder, die vielleicht besser erklären was ich meine. Auf einem der Bilder wird mit der roten Farbe der Bereich aufgezeichnet, der nicht mehr für das dritte Wort ausreicht. Und das Problem an allem ist, der Klick auf den leeren Bereich zwischen "m" und dem rechten roten Rand ruft ein Event aus, was ich zu unterbinden versuche.
nicht links natürlich, sondern rechts.
Ohne deine Benutzeroberfläche zu kennen denke ich, dass du wahrscheinlich ein grundsätzliches Design- bzw. Layoutproblem hast. Und du versuchst es gerade eher umständlich mit ein paar Pflastern verschwinden zu lassen.
Zum Berechnen der Textgröße kannst du z.B. bei determine-label-size-based-upon-amount-of-text-and-font-size-in-winforms-c gucken.
Ich würde aber eher die Weite der CheckBox ändern, wenn der Text sich ändert.
Für das Layout muß man überhaupt nichts berechnen, dafür hat WinForms bereits alles, was man braucht. Meistens jedenfalls.
Siehe z.B.:
Position and layout of controls
Walkthrough: Arranging Controls on Windows Forms Using a TableLayoutPanel
Weeks of programming can save you hours of planning
Vielen Dank für die Antworten schon mal.
aber es bleibt nun mal so< dass CheckBox.AutoSize = False und CheckBox.Size.Width eine feste Größe hat. Warum es so ist und ob ich es ändern muss war nicht meine Frage. Meine Frage war eher wie kann ich die Länge des sichtbaren Textes (bis zum automatischen Umbruch) berechnen, damit ich den MouseClick nur auf "CheckBox-Kästchen" und auf den sichtbaren Text erlaube. Sorry wenn ich mich nicht klar genug ausgedrückt habe.
Offensichtlich hast du dir den Link in meinem Beitrag nicht ernsthaft zu Gemüte geführt. Da steht das Wesentliche drin, was du brauchst.
Der Rest ist Transferleistung.