Announcement

Collapse
No announcement yet.

In einer RichTextBox die Schriftgröße über den Code ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • In einer RichTextBox die Schriftgröße über den Code ändern

    Hi an alle,

    ich hab schon wieder ein Frage und zwar möchte ich einfach nur die Schriftgröße einer richTextBox ändern.

    Ich hab bereits ein paar Anläufe und zwar ist die Größe die in FontFamily angegeben werden muss vom Typ float (12f, 10f, usw.).
    Ich lasse also aus einer ComboBox (welche die Zahlen 8,9,10-48,72 enthält) den gewählten Wert übergeben und dann zusammen mit dem fehlendem 'f' zu einem float konvertieren.

    Klingt ein bisschen .. komisch deswegen denke ich dass da auch der Fehler liegt.

    ich habe hier noch den Code :

    [highlight=c#]
    int sizeNumber = (int)this.toolStripComboBox2.ComboBox.SelectedValu e;
    char sizeChar = 'f';
    float FontSize = (float)sizeNumber + (float)sizeChar;

    Font f = new Font("Calibri", FontSize);
    this.richTextBox1.Font = f;
    [/highlight]

    Ausführen lässt sich das Programm, allerdings kommt ein Fehler wenn ich versuche die Größe nun zu ändern und zwar :
    Der übliche Text und am Ende "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Was ist da der Fehler?

    Schöne Grüße und vielen Dank im voraus.
    • MS Visual Studio 2010 Ultimate - C# WinForms/WPF
    • Notepad++ - HTML,JavaScript,CSS,PHP
    • Windows 7 Pro

  • #2
    Setz in Zeile 1 einen Breakpoint und geh die Zeilen Schritt für Schritt durch, und überprüf dabei immer wieder die Variablen, welchen Wert sie haben, und achte darauf in welcher Zeile genau der Fehler kommt.
    Günther

    Comment


    • #3
      Der Fehler kommt direkt bei der ersten Zeile also bei

      [highlight=c#]
      int sizeNumber = (int)this.toolStripComboBox2.ComboBox.SelectedValu e;
      [/highlight]

      Außerdem hat Visual Studio (Version 2010) geraten, ob der übergebene Wert NULL ist ... hab ich gemacht und tatsächlich: er ist NULL.
      Jetzt muss ich nur noch herausfinden warum der wert nicht übergeben wird ><
      • MS Visual Studio 2010 Ultimate - C# WinForms/WPF
      • Notepad++ - HTML,JavaScript,CSS,PHP
      • Windows 7 Pro

      Comment


      • #4
        Ich habs geschafft, indem ich den Code neu geschrieben habe.
        Ich habe am Anfang ein Integer-Array mit den Zahlen festgelegt und dieses mit dem DataSource der ComboBox verbunden.

        Am Ende kam folgende Funktion dabei heraus :

        [highlight=c#]
        private void cbx_Fonts_SelectedIndexChanged(object sender, System.EventArgs e)
        {
        /**
        * Ruft die Funktion auf, um die Schriftart zu ändern.
        * Liest die aktuelle Schriftgröße aus und übergibt diese mit der gewählten Schriftart
        */
        setFont((FontFamily)this.toolStripComboBox1.ComboB ox.SelectedValue, this.richTextBox1.Font.Size);
        }
        private void cbx_Size_SelectedIndexChanged(object sender, System.EventArgs e)
        {
        /**
        * Ruft die Funktion auf, um die Schriftgröße zu ändern.
        * Liest die aktuelle Schriftart aus und übergibt diese mit der gewählten Schriftgröße
        */
        int size = (int)this.toolStripComboBox2.ComboBox.SelectedValu e;
        setFont(this.richTextBox1.Font.FontFamily, (float)size);
        }
        private void setFont(FontFamily F, float fontSize)
        {
        /**
        * Übernimmt die Schriftart und die Schriftgröße und legt eine neue Variable vom Typ Font an.
        * Anschließend wird der Font-Wert der Textbox geändert
        */
        Font f = new Font(F, fontSize);
        this.richTextBox1.Font = f;
        }
        [/highlight]

        Im Programm befinden sich 2 ComboBox, zur auswahl von Schriftart und Größe welche dann die jeweilige Funktion aufruft.
        • MS Visual Studio 2010 Ultimate - C# WinForms/WPF
        • Notepad++ - HTML,JavaScript,CSS,PHP
        • Windows 7 Pro

        Comment

        Working...
        X