#287 closed defect (released)
New DataGridView crashes FrmUnit under Mono
Reported by: | ibboard | Owned by: | ibboard |
---|---|---|---|
Priority: | critical | Milestone: | WarFoundry 0.1 |
Component: | WarFoundry-GUI-WinForms | Version: | Trunk |
Keywords: | datagridview stats mono | Cc: | |
Blocked By: | Blocking: |
Description
If WarFoundry is used under Mono then the DataGridView behaves slightly differently to under Windows. Instead of showing the stats, the grid view causes a crash because of an index out of bounds:
DEBUG [20:05:08]: FrmUnit.SetStats() - Line: 0 - Unit Empire General has 1 stats arrays DEBUG [20:05:08]: FrmUnit.CreateDataGridView() - Line: 0 - Create DataGridView for stats ID whDefault DEBUG [20:05:08]: FrmUnit.CreateDataGridView() - Line: 0 - Create DataGridView widget DEBUG [20:05:08]: FrmUnit.CreateDataColumn() - Line: 0 - Create column Name System.ArgumentOutOfRangeException: Index is less than 0 or more than or equal to the list count. Parameter name: index 0 at System.Collections.ArrayList.ThrowNewArgumentOutOfRangeException (System.String name, System.Object actual, System.String message) [0x00000] in <filename unknown>:0 at System.Collections.ArrayList.get_Item (Int32 index) [0x00000] in <filename unknown>:0 at System.Windows.Forms.DataGridViewColumnCollection.get_Item (Int32 index) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.DataGridViewColumnCollection:get_Item (int) at IBBoard.WarFoundry.GUI.WinForms.FrmUnit.CreateDataGridView (System.String statsID) [0x00000] in <filename unknown>:0 at IBBoard.WarFoundry.GUI.WinForms.FrmUnit.GetDataGridView (System.String statsID) [0x00000] in <filename unknown>:0 at IBBoard.WarFoundry.GUI.WinForms.FrmUnit.SetStats () [0x00000] in <filename unknown>:0 at IBBoard.WarFoundry.GUI.WinForms.FrmUnit..ctor (IBBoard.WarFoundry.API.Objects.Unit toDisplay, IBBoard.Commands.CommandStack cmdStack) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) IBBoard.WarFoundry.GUI.WinForms.FrmUnit:.ctor (IBBoard.WarFoundry.API.Objects.Unit,IBBoard.Commands.CommandStack) at IBBoard.WarFoundry.GUI.WinForms.FrmMain.OpenUnitDialog (IBBoard.WarFoundry.API.Objects.Unit unit) [0x00000] in <filename unknown>:0 at IBBoard.WarFoundry.GUI.WinForms.FrmMain.AddUnitFromCategory (IBBoard.WarFoundry.API.Objects.Category cat) [0x00000] in <filename unknown>:0 at IBBoard.WarFoundry.GUI.WinForms.FrmMain.CreateUnitForCategoryButtonClick (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ToolStripItem.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ToolStripButton.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ToolStripItem.HandleClick (System.EventArgs e) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ToolStripItem.FireEvent (System.EventArgs e, ToolStripItemEventType met) [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem:FireEvent (System.EventArgs,System.Windows.Forms.ToolStripItemEventType) at System.Windows.Forms.ToolStrip.OnMouseUp (System.Windows.Forms.MouseEventArgs mea) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.ToolStrip.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
From the code, it looks like we assume that a column exists in the view because it has been created in the data table, but Mono doesn't behave in quite the same way.
Change History (3)
comment:1 Changed 10 years ago by
Owner: | set to ibboard |
---|---|
Status: | new → accepted |
comment:2 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.
(In r576) Fixes #287: New DataGridView crashes FrmUnit under Mono