ObjectDisposedException on second use

L

LLcoolQ

I have created a DataGridViewNumericUpDownColumn using this from MSDN:

http://msdn.microsoft.com/en-us/library/aa730881(vs.80).aspx

I build my grids at run-time, here is the code for adding the column:

Dim colQtyShipped As New DataGridViewNumericUpDownColumn
With colQtyShipped
.Increment = 1
.Minimum = 0
.Maximum = 250
.DataPropertyName = "QuantityShipped"
.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
.HeaderText = "Packed"
.Name = "QuantityShipped"
.[ReadOnly] = False
.Visible = True
.MinimumWidth = 50
.Width = 50
End With
itemGrid.Columns.Add(colQtyShipped)

The first time i open a form, all works well. The column displays,
the arrows work fine, the data binding works fine.

As soon as i close the form and open a new instance, I get this error:

Cannot access a disposed object
Object name: 'NumericUpDown'.

System.ObjectDisposedException was unhandled by user code
Message="Cannot access a disposed object.\r\nObject name:
'NumericUpDown'."
Source="System.Windows.Forms"
ObjectName="NumericUpDown"
StackTrace:
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean
fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.ControlCollection.Add(Control
value)
at System.Windows.Forms.Control.set_ParentInternal(Control
value)
at System.Windows.Forms.Control.set_Parent(Control value)
at
DataGridViewNumericUpDownElements.DataGridViewNumericUpDownCell.Paint(Graphics
graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex,
DataGridViewElementStates cellState, Object value, Object
formattedValue, String errorText, DataGridViewCellStyle cellStyle,
DataGridViewAdvancedBorderStyle advancedBorderStyle,
DataGridViewPaintParts paintParts) in C:\Dotnet\Examples
\DataGridViewNumericUpDown\DataGridViewNumericUpDownElements
\DataGridViewNumericUpDownCell.cs:line 575
at System.Windows.Forms.DataGridViewCell.PaintInternal(Graphics
graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex,
DataGridViewElementStates cellState, Object value, Object
formattedValue, String errorText, DataGridViewCellStyle cellStyle,
DataGridViewAdvancedBorderStyle advancedBorderStyle,
DataGridViewPaintParts paintParts)
at
System.Windows.Forms.DataGridViewCellPaintingEventArgs.PaintContent(Rectangle
clipBounds)
at
ComponentFactory.Krypton.Toolkit.KryptonDataGridView.OnCellPainting(DataGridViewCellPaintingEventArgs
e)
at System.Windows.Forms.DataGridViewCell.PaintWork(Graphics
graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex,
DataGridViewElementStates cellState, DataGridViewCellStyle cellStyle,
DataGridViewAdvancedBorderStyle advancedBorderStyle,
DataGridViewPaintParts paintParts)
at System.Windows.Forms.DataGridViewRow.PaintCells(Graphics
graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex,
DataGridViewElementStates rowState, Boolean isFirstDisplayedRow,
Boolean isLastVisibleRow, DataGridViewPaintParts paintParts)
at System.Windows.Forms.DataGridViewRow.Paint(Graphics
graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex,
DataGridViewElementStates rowState, Boolean isFirstDisplayedRow,
Boolean isLastVisibleRow)
at System.Windows.Forms.DataGridView.PaintRows(Graphics g,
Rectangle boundingRect, Rectangle clipRect, Boolean
singleHorizontalBorderAdded)
at System.Windows.Forms.DataGridView.PaintGrid(Graphics g,
Rectangle gridBounds, Rectangle clipRect, Boolean
singleVerticalBorderAdded, Boolean singleHorizontalBorderAdded)
at System.Windows.Forms.DataGridView.OnPaint(PaintEventArgs e)

It points to this line of code

paintingNumericUpDown.TextAlign =
DataGridViewNumericUpDownCell.TranslateAlignment(cellStyle.Alignment);

in class DataGridViewNumericUpDownCell


Really not sure what is causing this. i am not trying to reuse an
object, trying to create a new one.
 
L

LLcoolQ

If i leave the first form that used this open, i can open and close
forms forever. as soon as i close the form that it was first used on,
the ObjectDisposedException is thrown. I can work around this for now
by creating an invisible instance of this at app startup, but will dig
in and figure out how to get around this
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top