Autor Beitrag
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Do 30.03.06 18:24 
Hallo,

ich habe eine RichTextBox vor mir und eine ToolBar mit Buttons für Fett, Kursiv und Unterstrichen.
Wenn ich auf einen der Knöppe klicke, dann wird der Stil auch angewandt. Wenn ich aber nochmals draufklicke, tut sich nichts neues wegen folgendem Problem:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
private void boldToolStripButton_Click(object sender, EventArgs e)
    {
      if (RichTextBox.SelectionFont.Style == FontStyle.Bold) /* so geht das nicht, ich möchte, das das auch true wird, wenn z.B. auch italic dabei ist */
      {
        RichTextBox.SelectionFont = new Font(RichTextBox.SelectionFont, /* hier müsste jetzt RichTextBox.SelectionFont.Styles minus FontStyle.Bold hin */);
      }
      else
      {
        RichTextBox.SelectionFont = new Font(RichTextBox.SelectionFont, FontStyle.Bold | RichTextBox.SelectionFont.Style);
      }
      getFormattingToToolbar();
    }


An der Stelle der Kommentare sind meine Probs. Wie kriege ich rauß, ob der Style des Fonts unter anderem FontStyle.Bold ist und nicht ausschließlich?
Und zweites Problem: Wie "subtrahiere" ich das Bold von dem ursprünglichen Style?

Ich weiß, neue Frage neues Topic, aber das hängt so nah miteinander zusammen danke ich... oder täusche ich mich?

Kann auch sein, dass ich mal wieder eine viel einfachere Lösung übersehen habe -.- wie bei den kurzen Datumsstrtings neulich :roll:

Vielen Dank
JayK
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Do 30.03.06 18:55 
Ich glaube hier kennt sich jemand nicht mit Flags aus. ;)
Man nehme eine simple Flags-Deklaration:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
[Flags]
enum MyFlags
{
  Eins = 1,
  Zwei = 2,
  Drei = 4  // müssen 2'er-Potenzen sein
}


  • Zuweisen von Eins und Zwei in eine variable:
    ausblenden C#-Quelltext
    1:
    MyFlags var = MyFlags.Eins | MyFlags.Zwei;					

  • Zwei einer Variable hinzufügen:
    ausblenden C#-Quelltext
    1:
    var = var | MyFlags.Zwei;					

    oder
    ausblenden C#-Quelltext
    1:
    var |= MyFlags.Zwei;					

  • Zwei entfernen:
    ausblenden C#-Quelltext
    1:
    var = var & ~MyFlags.Zwei;					

    oder
    ausblenden C#-Quelltext
    1:
    var &= ~MyFlags.Zwei;					

  • Auf Zwei testen: bool test =  (var & MyFlags.Zwei) == MyFlags.Zwei;


Das soll jetzt nur sehr ein kurzer Rundumschlag zu Flags sein. Wenn du sets in Delphi32 benutzt hattest sollte es kein Problem darstellen. Wenn nicht kannst du dich im weiten Internet schlauschmökern.

Sollte reichen um eine Lösung für dein Problem zu deduzieren. :P
JayK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Do 30.03.06 19:09 
user profile iconRobert_G hat folgendes geschrieben:
Ich glaube hier kennt sich jemand nicht mit Flags aus. ;)

Genau ;)

Danke für die Einführung, ich glaube damit sollte ich das gebacken kriegen. :)
Wenn nich, dann melde ich mich :mrgreen:

Okay der Fall ist nicht eingetreten. Es funzt alles wie es soll. :)