none
當載入資料到RichTextBox時如何自動變更文字顏色????? RRS feed

  • 問題

  • 大大們不好意思小弟又來問一下問題了

    當資料載入到文字框時如何自動變更指定文字顏色如下:

    如X自動變更為藍色 Y自動變更為紅色

    請問大大們這個程序應該如何編寫呢??

    煩請大大們解答一下謝謝!!!

    小弟不勝感激!!!!!!!!!

    2013年6月11日 下午 01:55

解答

  • 將字串拆解成字元,逐一判斷字元,

    當等於X時,RichTextBox1.SelectionColor = System.Drawing.Color.Blue;  RichTextBox1.AppendText("X");

    當=Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Red;  RichTextBox1.AppendText("Y");

    當不等於X和Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Black;  RichTextBox1.AppendText("某字元");

    最後逐個字元組合成字串

    2013年6月11日 下午 04:00
  • Public Class Form1
        Private ReadOnly colorMapping As Dictionary(Of CharColor) = New Dictionary(Of CharColor)
     
        Private Sub AutoChange()
            For i As Integer = 0 To RichTextBox1.Text.Length - 1
                If (colorMapping.ContainsKey(RichTextBox1.Text(i))) Then
                    RichTextBox1.Select(i1)
                    RichTextBox1.SelectionColor = colorMapping(RichTextBox1.Text(i))
    RichTextBox1.SelectedFont = ……;             End If         Next     End Sub     Private Sub Form1_Load(sender As Objecte As EventArgsHandles MyBase.Load         RichTextBox1.LoadFile("d:\try.txt"RichTextBoxStreamType.PlainText)         AutoChange()     End Sub     Public Sub New()         ' 此调用是设计器所必需的。         InitializeComponent()         ' 在此處添加你需要尋找字元的匹配項以及對應的顏色         colorMapping.Add("X"Color.Red)         colorMapping.Add("Y"Color.Blue)     End Sub End Class

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report


    • 已編輯 ThankfulHeart 2013年6月16日 上午 03:28
    • 已標示為解答 daybule 2013年6月17日 上午 03:18
    2013年6月16日 上午 03:25

所有回覆

  • 將字串拆解成字元,逐一判斷字元,

    當等於X時,RichTextBox1.SelectionColor = System.Drawing.Color.Blue;  RichTextBox1.AppendText("X");

    當=Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Red;  RichTextBox1.AppendText("Y");

    當不等於X和Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Black;  RichTextBox1.AppendText("某字元");

    最後逐個字元組合成字串

    2013年6月11日 下午 04:00
  • 感謝大大了解
    大大請問一下那麼變更文字的程序要放在哪啊

    如以下:

      RichTextBox1.Text = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName, System.Text.Encoding.GetEncoding(65001))
                        While RichTextBox1.Text = "X"
                            RichTextBox1.SelectionColor = System.Drawing.Color.Blue
                            RichTextBox1.AppendText("X")

                        End While

    是這樣嗎

    煩請大大解答一下謝謝!!!!

    小弟不勝感激!!!!!!

    • 已編輯 daybule 2013年6月11日 下午 10:31
    2013年6月11日 下午 08:43
  • 你的邏輯根本亂七八糟, 一看就知道沒用腦

    While RichTextBox1.Text = "X" , 只要腦容量超過鳥類都會知道, 這只有在RichTextBox1中只有一個字母X才會成立.

    你要先學的是怎麼用腦, 學好後再寫程式吧.


    • 已編輯 河蟹魂 2013年6月12日 上午 12:31
    2013年6月12日 上午 12:31
  • 恩恩大大你很厲害喔

    那麻請解釋一下吧要如何才能用呢引數Mark Shu的文章:

    將字串拆解成字元,逐一判斷字元,

    當等於X時,RichTextBox1.SelectionColor = System.Drawing.Color.Blue;  RichTextBox1.AppendText("X");

    當=Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Red;  RichTextBox1.AppendText("Y");

    當不等於X和Y時,RichTextBox1.SelectionColor = System.Drawing.Color.Black;  RichTextBox1.AppendText("某字元");

    最後逐個字元組合成字串

    請解釋一下吧.....河蟹魂大大..........

    2013年6月12日 上午 03:20
  • daybule

    Public Class Form1
        Private ReadOnly colorMapping As Dictionary(Of CharColor) = New Dictionary(Of CharColor)
     
        Private Sub AutoChange()
            For i As Integer = 0 To RichTextBox1.Text.Length - 1
                If (colorMapping.ContainsKey(RichTextBox1.Text(i))) Then
                    RichTextBox1.Select(i1)
                    RichTextBox1.SelectionColor = colorMapping(RichTextBox1.Text(i))
                End If
            Next
        End Sub
     
        Private Sub Form1_Load(sender As Objecte As EventArgsHandles MyBase.Load
            RichTextBox1.LoadFile("d:\try.txt"RichTextBoxStreamType.PlainText)
            AutoChange()
        End Sub
     
        Public Sub New()
     
            ' 此调用是设计器所必需的。
            InitializeComponent()
     
            ' 在此處添加你需要尋找字元的匹配項以及對應的顏色
            colorMapping.Add("X"Color.Red)
            colorMapping.Add("Y"Color.Blue)
     
        End Sub
    End Class


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    • 已編輯 ThankfulHeart 2013年6月12日 上午 09:31
    • 已標示為解答 daybule 2013年6月15日 下午 02:46
    • 已取消標示為解答 daybule 2013年6月16日 上午 03:05
    2013年6月12日 上午 03:35
  • 謝謝上面的大大

    我試試.......

    感謝大大謝謝測試ok!!!

    太感激你了!!!!!!!!!

    • 已編輯 daybule 2013年6月15日 下午 02:47
    2013年6月12日 上午 09:17
  • 大大不好意思喔我還有一個疑問

    那就是如果要在自動載入資料時變更字型

    要用哪一種方法.......

    煩請大大解答一下謝謝!!!!!!

    小弟不勝感激!!!!!!!!!

    2013年6月16日 上午 03:09
  • Public Class Form1
        Private ReadOnly colorMapping As Dictionary(Of CharColor) = New Dictionary(Of CharColor)
     
        Private Sub AutoChange()
            For i As Integer = 0 To RichTextBox1.Text.Length - 1
                If (colorMapping.ContainsKey(RichTextBox1.Text(i))) Then
                    RichTextBox1.Select(i1)
                    RichTextBox1.SelectionColor = colorMapping(RichTextBox1.Text(i))
    RichTextBox1.SelectedFont = ……;             End If         Next     End Sub     Private Sub Form1_Load(sender As Objecte As EventArgsHandles MyBase.Load         RichTextBox1.LoadFile("d:\try.txt"RichTextBoxStreamType.PlainText)         AutoChange()     End Sub     Public Sub New()         ' 此调用是设计器所必需的。         InitializeComponent()         ' 在此處添加你需要尋找字元的匹配項以及對應的顏色         colorMapping.Add("X"Color.Red)         colorMapping.Add("Y"Color.Blue)     End Sub End Class

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report


    • 已編輯 ThankfulHeart 2013年6月16日 上午 03:28
    • 已標示為解答 daybule 2013年6月17日 上午 03:18
    2013年6月16日 上午 03:25
  • 大大不好意思喔再請問一下

    他沒有辦法像你寫的一樣用

    colormapping.add("x",color.red)的方法變更字型嗎??

    煩請大大解答一下謝謝!!!!!!!

    小弟不勝感激!!!!!!

    2013年6月16日 下午 03:21
  • 你仿造我的方法再声明一个Dictionary,放入字元类型Font以及和字符映射关系,然后进行代码匹配,仿造我的代码自己想象看。

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年6月17日 上午 01:50
  • 大大感謝........

    小弟知道了......

    感恩..........

    2013年6月17日 上午 03:18