RichTextBox: Parameterliste in richTextBox1.SelectionFont generieren

06/12/2007 - 21:18 von Horst Artner | Report spam
Hallo NG,

die Methode zum Festlegen der Schriftform ist überladen und eine Möglichkeit
ist die folgende:

richTextBox1.SelectionFont = new Font(Font prototype, FontStyle
newStyle);

Hierbei ist 'newStyle' der FontStyle, welcher auf den neuen Font angewandt
werden soll. Mehrere FontStyle-Enumerationen können mit dem OR-Operator
kombiniert werden.

So könnte die Methode z.B. so aussehen:

Font protoType = richTextBox1.SelectionFont;
richTextBox1.Selection Font = new Font(protoType, FontStyle.Bold |
FontStyle.Italic);

Mit den FontStyle's Bold, Italic, Underline und Strikeout ergàben sich 13
unterschiedliche Aufruf-Möglichkeiten. Das legt den Wunsch nahe, die
Parameterliste per Code zu erzeugen.

Die gewünschte Kombination sei z.B. in dem Array hinterlegt:

bool[] = new bool[4]{ .., ..}; //Index 0 --> Bold, Index 1 --> Italic,
.., ..

Wie kann ich die Parameterliste generieren? Ich weiß garnicht so recht,
wonach ich suchen soll.
Es wàre schön, wenn ihr mir einen Tipp geben könntet.

Mit freundlichem Gruß
Horst Artner
 

Lesen sie die antworten

#1 Frank Dzaebel
07/12/2007 - 10:42 | Warnen spam
Hallo Horst,

Die gewünschte Kombination sei z.B. in dem Array hinterlegt:
bool[] = new bool[4]{ .., ..}; //Index 0 --> Bold, Index 1 --> Italic,
[...] Es wàre schön, wenn ihr mir einen Tipp geben könntet.



ich weiss nicht ganz, ob man das real benutzen
sollte, aber so wie Du es willst, wàre es etwa:

// Regular=0,Bold=1,Italic=2,Underline=4,Strikeout=8
private void Form1_Load(object sender, EventArgs e)
{
FontStyle fs = FontStyle.Bold | FontStyle.Strikeout; //Beispiel
bool[] fts = new bool[Enum.GetValues(typeof(FontStyle)).Length];
int count = 0;
foreach (int i in Enum.GetValues(typeof(FontStyle)))
fts[count++] = IsBitSet((int)fs, i);
} //<-hier BreakPoint und fts ansehen.

bool IsBitSet(int number, int bits)
{
return (number & bits) == bits;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen