none
關於DatagridView放資料的問題. RRS feed

  • 問題

  • 請問學長,

    DataGridview最左上角的那個格子, 就是Row Header 跟 Column Header交接的那一個區域, 要怎麼能放字或圖上去??

     

    謝謝.


    努力吸收新知的海綿~
    2010年7月12日 上午 07:12

解答

  • 我發現我想太多了. 只要在DataGridView的Paint事件處理就好了

       Private Sub DataGridView1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint
            If CType(sender, DataGridView).RowHeadersWidth > 20 Then
                e.Graphics.DrawString("test", New Font("Arial", 8), Brushes.Brown, 3, 3)
            End If
        End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 TakoQQ 2010年7月12日 下午 11:27
    2010年7月12日 下午 01:16
    版主

所有回覆

  • 繼承DataGridView類別做一個Custom Control, 然後覆寫 OnPaint()

    補充: 少了一個動作, 然後用DrawString把字畫上去


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 TakoQQ 2010年7月12日 上午 09:28
    • 已取消標示為解答 TakoQQ 2010年7月12日 下午 11:29
    2010年7月12日 上午 08:03
    版主
  • 謝謝學長的幫忙.

     

    我用了一個偷懶的方式,放上了一個背景透明的Label, 看起來很Ok~~

    不過學長的方式,我會努力試試..

    謝謝..


    努力吸收新知的海綿~
    2010年7月12日 上午 09:28
  • 謝謝學長的幫忙.

     

    我用了一個偷懶的方式,放上了一個背景透明的Label, 看起來很Ok~~

    不過學長的方式,我會努力試試..

    謝謝..


    努力吸收新知的海綿~


    這也是OK, 反正可以解決問題, 用畫的大概是這樣做

    Public Class Class1
        Inherits DataGridView
        Sub New()
            Dim col0 As New DataGridViewTextBoxColumn
            col0.HeaderText = "ABC"

        End Sub
        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            MyBase.OnPaint(e)
            If Me.RowHeadersWidth > 20 Then
                e.Graphics.DrawString("test", New Font("Arial", 8), Brushes.Brown, 3, 3)
            End If
        End Sub
     
    End Class


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 TakoQQ 2010年7月12日 下午 11:27
    • 已取消標示為解答 TakoQQ 2010年7月12日 下午 11:27
    2010年7月12日 上午 10:41
    版主
  • 我發現我想太多了. 只要在DataGridView的Paint事件處理就好了

       Private Sub DataGridView1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint
            If CType(sender, DataGridView).RowHeadersWidth > 20 Then
                e.Graphics.DrawString("test", New Font("Arial", 8), Brushes.Brown, 3, 3)
            End If
        End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 TakoQQ 2010年7月12日 下午 11:27
    2010年7月12日 下午 01:16
    版主
  • 嗯.......還是要用正統方式解決比較好...謝謝學長
    努力吸收新知的海綿~
    2010年7月12日 下午 11:27