none
如何讓字串中的部份字元,以不同的色彩印出 RRS feed

  • 問題

  • 1.使用 VB2008。
    2.配合 PrintDocument 列印文件。
    3. 使用 e.Graphics.DrawString(Str1 & Str2 & Str3, New Font("新細明體", 12, FontStyle.Regular), Brushes.Black..... 列印字串。

    請問,若以上述 3 而言,有沒有方法可以讓 Str2 以 red 顏色印出字串。此因,我須要先組合不同的變數值,而後使用不同的色彩列印不同變數的值(每個變數值的字串長度都不一樣長)。

    敬請指導,謝謝

    chian
    2009年11月2日 下午 01:44

解答

  • http://support.microsoft.com/kb/811401
    這個 kb 裡面的確是有一個小錯誤,把下面這行程式碼,最後一個 .Click 刪除即可,這種小錯誤肉眼應該很容易辨別:
    Private Sub btnPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPageSetup.Click.Click

    另外這個 kb 裡面的自定控制項 RichTextBoxPrintCtrl 也可以直接加在你現有的專案裡,就不用多一個獨立的 dll 。
    做法 (參考原 kb):
    建立 RichTextBoxPrintCtrl 控制項
    把步驟 1 改為:在目前專案內新增類別,預設情況下,Class1.vb 被建立的。
    把步驟 8 改為:先編譯執行目前專案,使得工具列自動產生自定控制項。

    把你原先專案內的 RichTextBox 刪除,從上面步驟 8 在工具列出現的自定控制項拖拉到原先的 RichTextBox 位置,並設定好即可。

    建議你先依照該網頁說明,建立一測試專案玩玩看。
    另外要注意的是,部份雷射印表機若未提供色彩自動轉灰階功能時,直接列印會掉字,請自行修改轉換對應灰階顏色。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 Lolota Lee 2009年11月9日 上午 07:19
    2009年11月3日 上午 06:26

所有回覆

  •         Dim g As Graphics = Me.PictureBox1.CreateGraphics()
            Dim Str1 As String = "Str1"
            Dim Str2 As String = "Str2"
            Dim Str3 As String = "Str3"
            g.DrawString(Str1, New Font("新細明體", 12, FontStyle.Regular), Brushes.Black, 10, 10)
            g.DrawString(Str2, New Font("新細明體", 12, FontStyle.Regular), Brushes.Red, 60, 10)
            g.DrawString(Str3, New Font("新細明體", 12, FontStyle.Regular), Brushes.Green, 110, 10)
            ' Clean up the Graphics object.
            g.Dispose()

    還是要分開寫吧,還得自己算字串長度,得到X座標...
    2009年11月2日 下午 03:00
  • 你這個問題問過很多遍,先前回給你的範例到底有沒有看?

    這篇回給你的:
    http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/ce26a27e-c7f8-49c8-827d-ac4705584d19

    直接程式碼剪貼就可以用了,有圖有真象,跑出來的結果:


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年11月2日 下午 03:29
  • 1.感謝心冷熱情熄大大的指導,您呈現的範例結果是我想要的。
    2.我一直轉不過來,因此請再次指導,謝了。
    3. 這次我須要將多個變數值,例如 Str1、Str2、Str3... 合併一起印出,因此就使用下例程式碼列印字串,但其中 Str2 字串希望能以不同色彩印出。

    e.Graphics.DrawString(Str1 & Str2 & Str3, New Font("新細明體", 12, FontStyle.Regular), Brushes.Black.....

    4. Str1 & Str2 & Str3 等等都是變數值,值的字元數不固定,也不是 RichTextBox 的值,這些變數值不能使用 Joe Hung 大大的方法,以定位方式連接。

    謝了。

    chian
    2009年11月3日 上午 03:30
  • http://support.microsoft.com/kb/811401
    這個 kb 裡面的確是有一個小錯誤,把下面這行程式碼,最後一個 .Click 刪除即可,這種小錯誤肉眼應該很容易辨別:
    Private Sub btnPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPageSetup.Click.Click

    另外這個 kb 裡面的自定控制項 RichTextBoxPrintCtrl 也可以直接加在你現有的專案裡,就不用多一個獨立的 dll 。
    做法 (參考原 kb):
    建立 RichTextBoxPrintCtrl 控制項
    把步驟 1 改為:在目前專案內新增類別,預設情況下,Class1.vb 被建立的。
    把步驟 8 改為:先編譯執行目前專案,使得工具列自動產生自定控制項。

    把你原先專案內的 RichTextBox 刪除,從上面步驟 8 在工具列出現的自定控制項拖拉到原先的 RichTextBox 位置,並設定好即可。

    建議你先依照該網頁說明,建立一測試專案玩玩看。
    另外要注意的是,部份雷射印表機若未提供色彩自動轉灰階功能時,直接列印會掉字,請自行修改轉換對應灰階顏色。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 Lolota Lee 2009年11月9日 上午 07:19
    2009年11月3日 上午 06:26
  • 感謝萬分。
    chian
    2009年11月3日 上午 08:48