Hallo,
bin erst 2 Tage am Net-Schnuppern mit der 2005 Express.
Habe schon erkannt, dass es die für mich so wichtige Index-Property für Controls nicht mehr gibt und bin als Alternative hierfür auf diesen Artikel gestossen:
http://www.microsoft.com/germany/msdn/library/net/vbnet/RueckgewinnungEinigerBeliebterVisualBasic60Funktionen.mspx
Nun wollte ich den Abschnitt "Verbinden beider Funktionen" nachbauen.
hm, zunächst habe ich bei "Neues Projekt" die UserControl Entwicklung vergeblich gesucht... liegt wohl an der Express (?).
Darum bin ich es so angegangen, dass ich ein normales Windows Projekt aufgemacht habe und dort über Hinzufügen (in alter VB5/6-Manier) das UserControl hinzugefügt habe.
Das scheint soweit zu funzen.
Dann habe ich wie angegeben das Ding in "ControlPanelArray.vb" umbenannt.
Doch gleich in der ersten Code-Box des Artikels gibt's ein Problem (wogegen der Rest zu klappen scheint):
Wenn ich die Zeile von
Inherits System.Windows.Forms.UserControl
in
Inherits System.Windows.Forms.Panel
ändere, unterstreicht mir die IDE die Zeile blau (und das letzte "l" rot) und ein Build oder Run führt zum Fehler
>>
Base class 'System.Windows.Forms.Panel' specified for class 'ControlPanelArray' cannot be different from the base class 'System.Windows.Forms.UserControl' of one of its other partial types.
<<
Der gesamte Control-Inhalt sieht so aus:
Public Class ControlPanelArray
Inherits System.Windows.Forms.Panel
Public Event InternalControlClick(ByVal sender As Object, ByVal e As _
EventArgs)
Public Event InternalControlKeyPress(ByVal sender As Object, ByVal e As _
KeyPressEventArgs)
Public Event InternalControlMouseUp(ByVal sender As Object, ByVal e As _
MouseEventArgs)
Private Sub InternalClickHandler(ByVal sender As Object, ByVal e As _
EventArgs)
RaiseEvent InternalControlClick(sender, e)
End Sub
Private Sub InternalKeyPressHandler(ByVal sender As Object, ByVal e As _
KeyPressEventArgs)
RaiseEvent InternalControlKeyPress(sender, e)
End Sub
Private Sub InternalMouseUpHandler(ByVal sender As Object, ByVal e As _
MouseEventArgs)
RaiseEvent InternalControlMouseUp(sender, e)
End Sub
Private Sub ControlArrayPanel_ControlAdded(ByVal sender As Object, ByVal e _
As System.Windows.Forms.ControlEventArgs) _
Handles MyBase.ControlAdded
AddHandler e.Control.Click, AddressOf InternalClickHandler
AddHandler e.Control.KeyPress, AddressOf InternalKeyPressHandler
AddHandler e.Control.MouseUp, AddressOf InternalMouseUpHandler
End Sub
Private Sub ControlArrayPanel_ControlRemoved(ByVal sender As Object, ByVal _
e As System.Windows.Forms.ControlEventArgs) _
Handles MyBase.ControlRemoved
RemoveHandler e.Control.Click, AddressOf InternalClickHandler
RemoveHandler e.Control.KeyPress, AddressOf InternalKeyPressHandler
RemoveHandler e.Control.MouseUp, AddressOf InternalMouseUpHandler
End Sub
End Class Geht das so mit der Express nicht oder mache ich evt. was anderes falsch?
Für sachdienliche Hinweise hierzu wäre ich sehr dankbar.
Gruß
Detlev |