2010-11-23 9 views
0

Ich versuche, eine benutzerdefinierte DataGridViewColumn und DataGridViewCell zu erstellen, und this Artikel gefunden haben, eine große Ressource zu sein. Ich bin fertig mit dem Erstellen der DataGridViewColumn-Klasse und der DataGridViewCell-Klasse, aber wenn ich versuche, den Typ der Spalte zu bearbeiten, werden meine neuen benutzerdefinierten Klassen nicht als eine der Optionen angezeigt. Meine DataGridViewScheduleColumn erbt DataGridViewColumn, daher bin ich mir nicht sicher, was ich falsch mache. Muss ich noch etwas tun, um diese Klassen der IDE zugänglich zu machen?Benutzerdefinierte DataGridView-Spalte in Visual Basic?

Danke. Hier

ist die benutzerdefinierte Spalte Klasse

Public Class DataGridViewScheduleColumn 
    Inherits DataGridViewColumn 


Public Sub New() 
    Me.CellTemplate = New DataGridViewScheduleCell 
    Me.ReadOnly = True 
End Sub 

Public MaxValue As Long 
Private needsRecalc As Boolean = True 

Public Sub calcMaxValue() 
    If needsRecalc Then 
     Dim colIndex As Integer = Me.DisplayIndex 
     For rowIndex As Integer = 0 To Me.DataGridView.Rows.Count - 1 
      Dim row As DataGridViewRow = Me.DataGridView.Rows(rowIndex) 
      MaxValue = Math.Max(MaxValue, CLng(row.Cells(colIndex).Value)) 

     Next 
     needsRecalc = False 
    End If 
End Sub 

End Class

Antwort

0

Ist Ihre benutzerdefinierten DGV Spalte und Zell Code in einem anderen Projekt als das Formular Sie versuchen, sie zu benutzen auf?

Wenn dies der Fall ist, müssen Sie in Ihrem Formularprojekt einen Verweis auf Ihr benutzerdefiniertes DGV-Spaltenprojekt hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf Ihr Formular-Projekt, wählen Sie "Referenz hinzufügen ..." aus dem Kontextmenü und fügen Sie das DGV-Spaltenprojekt (oder die Projektausgabe) hinzu.

+0

Sie sind im selben Projekt, nicht sicher, warum ich sie nicht sehen kann. –