Fragen zur Textbearbeitung

  • Allgemein

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von doci.

    Fragen zur Textbearbeitung

    Hallo Leute,

    Ich will zum lernen ein Textbearbeitungsprogramm schreiben. Im Moment hab ich eine Richtextbox und zwei Buttons:Fett und Kursiv.

    Folgenden Quelltext benutze ich:

    VB.NET-Quellcode

    1. Public Class Form1Private Sub Bfett_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bfett.Click
    2. TextBox.Font = New Font(TextBox.Font, FontStyle.Bold)
    3. End Sub
    4. Private Sub Bkursiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bkursiv.Click
    5. TextBox.Font = New Font(TextBox.Font, FontStyle.Italic)End Sub End Class

    Doch ich hab ein paar Probleme:
    1.Wie kann ich machen das nur der makierte Text sich verändert?
    2.Wie bekomme ich es hin das ich fett UND kursiv und später noch underline aufeinmal benutzen kann? (Wenn ich in meinem Beispiel auf die Buttons drücke geht immer nur fett oder kursiv.)
    3.Wie bekomme ich es hin, dass die Buttons so aussehen als wenn sie ganze Zeit gedrückt werden(So eingerastet)?
    Ich verwende eine richtextbox steht doch im Post. Hab die nur in textbox umbennat weil das dann weniger Ziffern sind^^.



    Un wenn ich diesen code benuze unterkringelt mir das Programm den Text:

    VB.NET-Quellcode

    1. TextBox.SelectedText.font
    Ich weiß nicht ob ich heute einfach zu doof bin. Wenn ich den button anklick gibt es bei mir kiene eigenschaft checked. Unter C ist nur CausesValidation, ContextMenuStrip,Cursor. Oder meinst du garnicht Eigenschaften?

    Achja ich benutzte vb 2008 ee
    Ich mach das doch lieber mit Color/Fontdialog.

    Doch jetzt hab ich noch ne Frage:

    Wie kann ich den Colordialog/Fontdialog in mein Programm integrieren? Also nicht das es als Dialog sich öffnet sondern so wie bei paint direkt an der Seite auswählbar ist. Oder gibt es ein Paletten Steuerelement?
    so ne palette musst du dir selbst basteln

    du hast zwei möglichkeiten

    wie in paint

    labels in den verschiedenen farben, bei klick auf ein label, setzt du den wert einer variable einfach auf die farbe

    oder

    direkt eine palette

    dazu suchst du dir einen farbkreis im internet, und fägst diesen als backgroundimage in ein label ein

    nun weis ich nicht genau weiter
    es gibt eine funktion, welche dir die rgb werte von dem punkt ausgibt, auf den du mit der maus klickst, entweder war dieser in der bitmap klasse,oder in der image klasse, aber ich glaube er war in der bitmap klasse

    naja, wenn du den befehl gefunden hast(i-was mit getrgb oder so)

    sagst du im klickevent deines labels mit dem farbkreis, das er dir den rgb wert aus dem punkt holen soll, andem die maus geklickt hat(die position erfährst du mouselocation, musst du suchen)
    mit den werten kannst du weiterarbeiten
    habs aus interesse nachgebaut...is ja doch nid so schwer

    wie gesagt, besorg dir einen farbkreis, und füg den farbkreis in ein label ein

    VB.NET-Quellcode

    1. Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
    2. Dim bmp As New Bitmap(Label1.Image)
    3. Me.BackColor = bmp.GetPixel(e.X, e.Y)
    4. End Sub


    fertig :P

    bedenke, das ein farbkreis rund ist, und ein label jedoch vier ecken hat....das runde passt zwar in was eckiges, jedoch soll es ja ein farbkreis sein, und kein farbeck :P
    bei bedarf kannst du ja das label abrunden(google is your best friend) :P
    stimmt, bei deinen farben klappt das wirklich nicht so gut....such dir mal einen richtigen farbkreis heraus
    nimm mal den ausm anhang und probiere es, bei den klappte es mit mir, so wie es sein soll
    Bilder
    • farbkreisweissgrau.JPG

      2,57 kB, 120×120, 256 mal angesehen