Geerbtes Formular - Designer Ansicht Prob

28/03/2008 - 22:04 von Markus Steidle | Report spam
Hallo NG,

Ich habe ein Formular A und ein Geerbtes Formular B.
Im Formular A gibt es unter anderem ein DataGridView1 (in eimem TabControl1)

Ich möchte nun im Formular B auf die Events CurrentCellEndEdit und
CurrentCellBeginEdit zugreifen.
dazu füge ich

Protected Shadows Sub CurrentCellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellEndEdit
' mach was ...
end sub

im Formular B ein ( und das Gleiche für CellBeginEdit)
Das ganze làsst sich komilieren und funktioniert.

Im Designer vom Formular B bekomme ich allerdings die Meldung:

Beim Laden des Designers sind die nachfolgend aufgeführten Fehler
aufgetreten. Einige können durch Neuerstellen des Projekts behoben werden,
andere erfordern möglicherweise Änderungen am Code.

Das Ereignis CellEndEdit ist schreibgeschützt und kann nicht geàndert
werden.
Ausblenden

bei
System.ComponentModel.Design.EventBindingService.EventPropertyDescriptor.SetValue(Object
component, Object value)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAttachEventStatement(IDesignerSerializationManager
manager, CodeAttachEventStatement statement)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager
manager, CodeStatement statement)

Das Ereignis CellBeginEdit ist schreibgeschützt und kann nicht
geàndert werden.
Ausblenden

bei
System.ComponentModel.Design.EventBindingService.EventPropertyDescriptor.SetValue(Object
component, Object value)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAttachEventStatement(IDesignerSerializationManager
manager, CodeAttachEventStatement statement)
bei
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager
manager, CodeStatement statement)

Wenn ich die beiden Subs entfetne kann ich im Designer wieder
arbeiten.
Wer kann mir helfen?

Danke und
Liebe Grüße
Markus
 

Lesen sie die antworten

#1 Elmar Boye
29/03/2008 - 09:45 | Warnen spam
Hallo Markus,

Markus Steidle schrieb:
Ich habe ein Formular A und ein Geerbtes Formular B.
Im Formular A gibt es unter anderem ein DataGridView1 (in eimem TabControl1)

Ich möchte nun im Formular B auf die Events CurrentCellEndEdit und
CurrentCellBeginEdit zugreifen.



Formularvererbung sollte man vermeiden, denn das überfordert u. a.
den Designer - wie Du gerade erlebst.
Nicht umsonst sind alle Ereignisse im Designer eines geerbten Formulars
gesperrt - nicht etwa weil es nicht ginge, sondern weil der Designer
nicht damit zurechtkommt.

dazu füge ich

Protected Shadows Sub CurrentCellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellEndEdit
' mach was ...
end sub

im Formular B ein ( und das Gleiche für CellBeginEdit)
Das ganze làsst sich komilieren und funktioniert.

Im Designer vom Formular B bekomme ich allerdings die Meldung:

Beim Laden des Designers sind die nachfolgend aufgeführten Fehler
aufgetreten.



Verwende anstatt des Handles ein AddHandler im Konstruktor,
das làßt den Designer außen vor.

Public Sub New()
InitializeComponent()

AddHandler MyBase.DataGridView1.CellBeginEdit, AddressOf DataGridView1_CellBeginEdit
AddHandler MyBase.DataGridView1.CellEndEdit, AddressOf DataGridView1_CellEndEdit
End Sub

Protected Sub DataGridView1_CellBeginEdit(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs)
Console.WriteLine("CellBeginEdit {0}, {1}", e.RowIndex, e.ColumnIndex)
End Sub

Protected Sub DataGridView1_CellEndEdit(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
Console.WriteLine("CellEndEdit {0}, {1}", e.RowIndex, e.ColumnIndex)
End Sub

Gruß Elmar

Ähnliche fragen