none
dataGridView 的 bug RRS feed

  • 一般討論

  • name 不是關鍵字,
    但是 dataGridView 中的一個欄位名稱如果是 name 的話,
    會有錯誤發生。
    2009年11月29日 下午 03:17

所有回覆

  • 請問你程式是怎麼寫的??
    我剛剛測試了一下,並不會有錯誤發生啊

    2009年11月29日 下午 03:29
  • 請問你程式是怎麼寫的??
    我剛剛測試了一下,並不會有錯誤發生啊


    1. 作出一個 datagridview
    2. 加入資料行,其中一個資料變數名稱是 name
    3. run it.
    4.
    警告 1 WithEvents 變數 'name' 與基底 class 'Control' 中的 property 'name' 產生衝突,而且應該宣告為 'Shadows'。
     C:\Documents and Settings\...\WindowsApplication1\Form1.Designer.vb 50 23 WindowsApplication1
     '
            'name
            '
            Me.name.HeaderText = "Column1"
            Me.name.Name = "name"
            Me.name.ReadOnly = True
            '
            'Column1     <--- 這是第 50 行
            '
            Me.Column1.HeaderText = "Column1"
            Me.Column1.Name = "Column1"
            Me.Column1.ReadOnly = True



    錯誤 2 型別 'String' 的值無法轉換成 'System.Windows.Forms.DataGridViewTextBoxColumn'。 
    C:\Documents and Settings\...\WindowsApplication1\Form1.Designer.vb 62 19 WindowsApplication1
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(292, 273)
            Me.Controls.Add(Me.DataGridView1)
            Me.name = "Form1"             <--- 這是第 62 行
            Me.Text = "Form1"
            CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)

    2009年11月29日 下午 08:32
  • 這個不是Bug, 基本上是因為你的命名方式會讓編譯器不知道你的Name指的是誰. (記住 VB.NET是不辨認大小寫的,在C#上 Name 和 name不同, 但在VB.NET上是一樣的)
    Form 類別本身就有一個 Name屬性,  然後你又給它一個成員的名稱叫Name.
    當你用 Form1.Name 的時候, 這個Name 倒底是指誰呢 ? 所比才會造成衝突.
    每種編譯器對這種成員處理的方式不太一樣,
    在Foxpro 6中如果我沒記錯, 這樣的命名造成的衝突會是那個Grid的物件和所屬Column物件
    在VB.NET中則是 Form物件與Column物件.
    因為這兩種環境對於成員隸屬的方法不一樣.
    所以, 這不是Bug, 而是你對於類別成員的觀念不夠清楚所致.



    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    2009年11月30日 上午 04:06
    版主
  • 謝謝前輩的指導,
    晚輩還要多多學習。
    2009年11月30日 上午 06:01