DockingPane - NullReferenceException |
Post Reply |
Author | |
modwyer8
Newbie Joined: 10 June 2009 Status: Offline Points: 4 |
Post Options
Thanks(0)
Posted: 03 June 2010 at 11:45am |
Hi-
I found another post with this problem that has no resolution. http://forum.codejock.com/forum_posts.asp?TID=16179 I followed the SDISample.PDF tutorial and created a form that had docking panes on it. It worked great. I then followed the same steps and added it as a form to my application. Every time I try to launch the form with the docking panes on it I get the error: System.NullReferenceException was unhandled by user code Message="Object reference not set to an instance of an object." on the line where I set the .Title of the first pane: paneA.Title = "Pane A"; I don't understand why this works as a separate app but not as a form. I even went so far as to add in the DockingPane example provided by CodeJock as a form in my application. I get the same error with that. I didn't modify the code at all. It is the exact sample that CodeJock provides which works on its own. Does the docking pane work when it is a form in an application or must it be only used in the main form of a standalone app? Does anyone have any suggestions? It appears that .CreatePane is not creating a pane. Thank you for your help. StackTrace: at MDI_Test.frmCalendar.frmCalendar_Load(Object sender, EventArgs e) in C:\MailManager\Copy of Tester_MDI_Test\MDI_Test\frmCalendar.cs:line 743 at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.SetVisibleCore(Boolean value) at System.Windows.Forms.Control.Show() at MDI_Test.ECFMail.tsBtnCal2_Click(Object sender, EventArgs e) in C:\MailManager\Copy of Tester_MDI_Test\MDI_Test\ECFMail.cs:line 4001 at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) |
|
Product: Xtreme SuitePro ActiveX 2009 (13.0.0)
Platform: Windows XP (32bit) - SP 3 Language: C#, VS2005 |
|
modwyer8
Newbie Joined: 10 June 2009 Status: Offline Points: 4 |
Post Options
Thanks(0)
|
It seems that I get the
NullReferenceException error when I set the MDIParent of the form that
contains the DockingPanes. If I remove that line then the form
launches fine.
Now the question is, can the docking panes NOT be used on a child form in an MDI app? |
|
Product: Xtreme SuitePro ActiveX 2009 (13.0.0)
Platform: Windows XP (32bit) - SP 3 Language: C#, VS2005 |
|
SuperMario
Admin Group Joined: 14 February 2004 Status: Offline Points: 18057 |
Post Options
Thanks(0)
|
Please see the MDI Docking C# or VB.Net sample, it shows how to add DP in MDI Child and as normal form.
"C:\Program Files\Codejock Software\ActiveX\Xtreme SuitePro ActiveX v13.4.0\Samples\Common\VB.NET\MDIDocking\MDIDocking.sln" |
|
modwyer8
Newbie Joined: 10 June 2009 Status: Offline Points: 4 |
Post Options
Thanks(0)
|
Thank you for the reply. I thought of looking at that example as I was falling asleep last night. I should have thought of that sooner.
Sorry if this post turns out to be a bit long. I have it working to where the form with the docking panes opens as a child of the MDIContainer (which itself does not have a docking pane manager) but the events I set up for the DockingPaneManager are not getting fired off when I create the Pane Objects. (.GetClientBordersWidth, .AttachPaneEvent...) I no longer get the NullReferenceException error and some lines of debug code I put in after creating the Panes show they are not null. But when my form opens the calendar object (the client part of the DockingPaneManager) is the same size (small) as it is in Design view and there are no panes. I am pretty sure this is because the events for the DockingPaneManager are not getting hit. Are the main differences between the SDI and MDI examples that the MDI example has the "foreach (Control ctrl in this.Controls)..." loop in frmMain that calls SetMDIClient, for a form set to be an MDIContainer - and then putting the initialization of the DockingPaneManager control in the Load of the form with Docking Panes that is to be the child form, as in frmDocument? Is there something else I am missing? Again, thanks for the help. Here is the Load of my child form: private void frmCalendar_Load(object sender, EventArgs e) { // // DockingPaneManager // this.DockingPaneManager = new AxXtremeDockingPane.AxDockingPane(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmCalendar)); ((System.ComponentModel.ISupportInitialize)(this.DockingPaneManager)).BeginInit(); this.DockingPaneManager.Enabled = true; this.DockingPaneManager.Location = new System.Drawing.Point(58, 233); this.DockingPaneManager.Name = "DockingPaneManager"; this.DockingPaneManager.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("DockingPaneManager.OcxState"))); this.DockingPaneManager.Size = new System.Drawing.Size(24, 24); this.DockingPaneManager.TabIndex = 16; this.DockingPaneManager.ResizeEvent += new System.EventHandler(this.DockingPaneManager_ResizeEvent); this.DockingPaneManager.AttachPaneEvent += new AxXtremeDockingPane._DDockingPaneEvents_AttachPaneEventHandler(this.DockingPaneManager_AttachPaneEvent); this.DockingPaneManager.GetClientBordersWidth += new AxXtremeDockingPane._DDockingPaneEvents_GetClientBordersWidthEventHandler(this.DockingPaneManager_GetClientBordersWidth); this.DockingPaneManager.Action += new AxXtremeDockingPane._DDockingPaneEvents_ActionEventHandler(this.DockingPaneManager_Action); this.Controls.Add(this.DockingPaneManager); ((System.ComponentModel.ISupportInitialize)(this.DockingPaneManager)).EndInit(); DockingPaneManager.ScaleMode = XtremeDockingPane.XTPScaleMode.xtpScalePixel; // create side tabbed panes CreatePaneObjects(); } Here is CreatePaneObjects(): private void CreatePaneObjects() { //Determine if Alpha Context is supported, if it is, then enable it //Determine if Docking Stickers is supported, if they are, then enable them if (Environment.OSVersion.Version.Major >= 5) { DockingPaneManager.Options.AlphaDockingContext = true; DockingPaneManager.Options.ShowDockingContextStickers = true; } else { DockingPaneManager.Options.AlphaDockingContext = false; DockingPaneManager.Options.ShowDockingContextStickers = false; } DockingPaneManager.Options.ShowCaptionMaximizeButton = true; Pane curMo = DockingPaneManager.CreatePane(0, 207, 159, XtremeDockingPane.DockingDirection.DockLeftOf, null); curMo.Title = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month); curMo.MinTrackSize.SetSize(201, 153); curMo.MaxTrackSize.SetSize(210, 159); DockingPaneManager.Options.ThemedFloatingFrames = true; } |
|
Product: Xtreme SuitePro ActiveX 2009 (13.0.0)
Platform: Windows XP (32bit) - SP 3 Language: C#, VS2005 |
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |