none
自己動態產生的Button可以覆寫Paint事件嗎? RRS feed

  • 問題

  • 自己動態產生的Button可以覆寫Paint事件嗎?

    我有一個Form大致上程式碼長這樣..

    Public Class Form2
        Public Class MyButton
            Inherits Button

            Public Sub MyButton_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyButton.Paint

            End Sub

        End Class

        Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click

         '這裡有一些碼...

         End Sub
    End Class

    我如果要MyButton覆寫Paint事件,要做什麼動作呢?


    None

    2012年3月3日 下午 02:24

解答

  • VB code: 

            Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)
                MyBase.OnPaint(pevent)
                'do something you need like below
                Dim g As Graphics = pevent.Graphics
                g.DrawString(Me.Text, Me.Font, New SolidBrush(Me.ForeColor),4, 4)
            End Sub
    


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年3月4日 上午 07:11

所有回覆

  • 如果只是動態產生Button 並不需要繼承Button
    只需要 宣告為Button 物件 並加入到 Form 

    另外覆寫 OnPaint事件

    protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e)
    'do something below:
    e.Graphics.DrawString(Text, Font ,new SolidBrush(ForeColor), 4.0,4.0)

    }


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度



    • 已編輯 Alex_Lee 2012年3月3日 下午 03:09
    2012年3月3日 下午 03:00
  • 你是不是弄錯 "覆寫" 的意思了 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年3月3日 下午 03:51
    版主
  • Visual Basic OOP

    你要不要先 K 一下!

     

    blog.kkbruce.net
    Plurk
    Google+專頁

    春有百花秋有月,
    夏有涼風冬有雪,
    若無閒事在心頭,
    便是人間好時節。

    2012年3月3日 下午 09:20
  • 這個好像不是VB的Code吧

    None

    2012年3月4日 上午 02:06
  • http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/7a09ddba-e10e-4975-8093-44b3849e4fed/

    上面這是你要的 ?

    如果是, 那就是 Alex Lee 給的方式就是了, 雖然是 C#, 也不致於差很多吧 ?

    而且有了提示就可以查了 , http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.onpaint.aspx

    念到大學資工系了, 連查個資料都還不會嗎 ?

    2012年3月4日 上午 02:59
  • VB code: 

            Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)
                MyBase.OnPaint(pevent)
                'do something you need like below
                Dim g As Graphics = pevent.Graphics
                g.DrawString(Me.Text, Me.Font, New SolidBrush(Me.ForeColor),4, 4)
            End Sub
    


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年3月4日 上午 07:11
  • 謝謝,我試出來了..


    None

    2012年3月5日 上午 05:04