Löschen von Usercontrols aus Zellen
Posted: 07.11.2007, 14:35
Hallo Thorsten,
ich habe da ein erneutes kleines Problem mit dem Grid entdeckt, was wir bereits auch schon mal kurz diskutiert hatten. Trotzdem packe ich die Sache in einen neuen Thread.
Prinzipiell geht es mir wieder um das Löschen einzelner Zellen aus dem Grid, die Usercontrols enthalten. Das Löschen bezieht sich dabei ausschließlich auf das Löschen der UserControls (Edit + Display) mit Hilfe der dafür vorgesehenen Funktionen. Die Zelle (Spalte) an sich soll bestehen bleiben und einfach nur leer sein.
Die Beispielanwendung schicke ich dir wieder via Mail. Anbei noch die Vorgehensweise, mit der du den Fehler provozieren kannst. In meiner richtigen Anwendung kommt er häufiger, aber ich denke es handelt es sich um das gleiche Problem.
1. Selektiere die Zelle 2-1, in dem du auf dieses Label klickst
2. Lösche die Zelle mit dem Button.
3. Selektiere die Zelle 1-1 (wieder mit dem Label).
4. Schließe die Applikation
5. Es erscheint folgender Fehler:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
at ppsGrid.GridCell.AfterEdit(Boolean committ)
at ppsGrid.Grid.OnLostFocus(EventArgs e)
at System.Windows.Forms.Control.WmKillFocus(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.UserControl.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Wenn man das obige Prozedere etwas abändert, und die Selektion der ersten Zelle mit Hilfe der Textbox vornimmt (es verschwindet die Zeilenselektion), und dann alle anderen Schritte analog ausführt (allerdings die Zelle im Schritt 3 wieder mit der Textbox selektiert), kommt die Fehlermeldung nicht.
Ich denke und hoffe, dass das für dich nur ein kleines Problem sein sollte.
Erik
ich habe da ein erneutes kleines Problem mit dem Grid entdeckt, was wir bereits auch schon mal kurz diskutiert hatten. Trotzdem packe ich die Sache in einen neuen Thread.
Prinzipiell geht es mir wieder um das Löschen einzelner Zellen aus dem Grid, die Usercontrols enthalten. Das Löschen bezieht sich dabei ausschließlich auf das Löschen der UserControls (Edit + Display) mit Hilfe der dafür vorgesehenen Funktionen. Die Zelle (Spalte) an sich soll bestehen bleiben und einfach nur leer sein.
Die Beispielanwendung schicke ich dir wieder via Mail. Anbei noch die Vorgehensweise, mit der du den Fehler provozieren kannst. In meiner richtigen Anwendung kommt er häufiger, aber ich denke es handelt es sich um das gleiche Problem.
1. Selektiere die Zelle 2-1, in dem du auf dieses Label klickst
2. Lösche die Zelle mit dem Button.
3. Selektiere die Zelle 1-1 (wieder mit dem Label).
4. Schließe die Applikation
5. Es erscheint folgender Fehler:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
at ppsGrid.GridCell.AfterEdit(Boolean committ)
at ppsGrid.Grid.OnLostFocus(EventArgs e)
at System.Windows.Forms.Control.WmKillFocus(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.UserControl.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Wenn man das obige Prozedere etwas abändert, und die Selektion der ersten Zelle mit Hilfe der Textbox vornimmt (es verschwindet die Zeilenselektion), und dann alle anderen Schritte analog ausführt (allerdings die Zelle im Schritt 3 wieder mit der Textbox selektiert), kommt die Fehlermeldung nicht.
Ich denke und hoffe, dass das für dich nur ein kleines Problem sein sollte.
Erik