Autor Beitrag
csahrp___neuling
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 19.03.10 10:36 
hi...

ich bin auf der suche nach etwas, mit dem ich einen teil eines strings fett formatieren kann...

zb...

string test = "asdasdasd";
string test2 = "boldbold" + test;

nun ist es mein ziel den teil ("boldbold"), fett darzustellen...

ps. der string wir in einer richtextbox ausgegeben

mfg.
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Fr 19.03.10 11:11 
Servus

na du hast doch schon alles gesagt: Benutzung von RichtextBox ist das Zauberwort.

Jetzt ist die Frage was du machen willst? Willst du den eingegebenen Text per Knopfdruck dick machen. (Wie bei Word). Dann hat deine RichTextBox diverse Eigenschaften mit denen du das setzen kannst:

ausblenden C#-Quelltext
1:
2:
3:
4:
FontStyle style = FontStyle.Bold;
System.Drawing.Font currentFont = rtfBox.SelectionFont;                  
//z.B.:
richTextBox.SelectionFont = new Font(currentFont.FontFamily, currentFont.Size, style);


Wenn du den Text nur anzeigen willst, musst du dich halt mit RTF-Tags auseinandersetzen und die in deinem Text dann so setzen wie du sie brauchst und den RTF-Text der RichTextBox übergeben.

ausblenden C#-Quelltext
1:
2:
3:
richTextBox.RTF = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}
\viewkind4\uc1\pard\tx2700\tx3900\fs20 Hier bin ich d\'fcnn, \b jetzt bin ich dick\b0 ! \fs16 Hier bin ich klein \fs20 geschrieben \fs28 und hier gro\'df\fs20 "
\par
}"


Am besten schaust du dir erstmal alle Member der RichTextBox in der MSDN bzw. IntelliSense an.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Fr 19.03.10 12:06 
Hallo,

wie Nema schon sagt, gibt es diese zwei Möglichkeiten. Leider gibt es keine elegante Lösung um deine Anforderung umzusetzen.

Ich habe deshalb mal eine Extensions geschrieben, bei der man dem hinzuzufügendem Text einen Style mitangeben kann.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
   richTextBox1.AppendText("asdasdasd   ");

   richTextBox1.AppendText("bold", FontStyle.Bold);

   richTextBox1.AppendText("hallo");

Extension Class
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
    public static class Extensions
    {
        public static void AppendText(this RichTextBox richTextBox, string text, FontStyle style)
        {
            richTextBox.AppendText(text, style, false);
        }

        public static void AppendText(this RichTextBox richTextBox, string text, FontStyle style, bool keepStyle)
        {
            richTextBox.SelectionStart = richTextBox.TextLength;
            richTextBox.SelectionLength = 0;
            richTextBox.SelectionFont = new Font(richTextBox.SelectionFont, style);
            richTextBox.AppendText(text);

            if (!keepStyle)
            {
                richTextBox.SelectionFont = richTextBox.Font;
            }
        }
    }
csahrp___neuling Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 19.03.10 12:14 
Danke dir für die hilfe, habe das ganze jetzt so lösen können:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
            string[] error_array;
            char[] filter = new char[] { '\r''\n' };
            error_array = error_line.Split(filter, StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < error_array.Length; i++)
            {
                richTextBoxJournal.Find(error_array[i], RichTextBoxFinds.MatchCase);
                richTextBoxJournal.SelectionFont = new Font("Courier New"8, FontStyle.Regular);
                richTextBoxJournal.SelectionColor = Color.Red;   
            }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt