+2009-01-23 Ivan N. Zlatev <contact@i-nz.net>
+
+ * DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no
+ editing control.
+
2009-01-23 Ivan N. Zlatev <contact@i-nz.net>
* DataGridView.cs: Fix new row adding/editing in the non-databound
cell.PositionEditingControl (true, true, this.GetCellDisplayRectangle (cell.ColumnIndex, cell.RowIndex, false), bounds, style, false, false, (columns [cell.ColumnIndex].DisplayIndex == 0), (cell.RowIndex == 0));
// Show the editing control
- EditingControlInternal.Visible = true;
+ if (EditingControlInternal != null)
+ EditingControlInternal.Visible = true;
IDataGridViewEditingControl dgvEditingControl = (IDataGridViewEditingControl) EditingControlInternal;
if (dgvEditingControl != null) {
if (cell != null) {
if (cell.KeyEntersEditMode (new KeyEventArgs ((Keys)m.WParam.ToInt32 ())))
BeginEdit (true);
- if (EditingControl != null && (Msg)m.Msg == Msg.WM_KEYDOWN || (Msg)m.Msg == Msg.WM_CHAR)
+ if (EditingControl != null && ((Msg)m.Msg == Msg.WM_KEYDOWN || (Msg)m.Msg == Msg.WM_CHAR))
XplatUI.SendMessage (EditingControl.Handle, (Msg)m.Msg, m.WParam, m.LParam);
}
[EditorBrowsable (EditorBrowsableState.Advanced)]
public virtual void PositionEditingControl (bool setLocation, bool setSize, Rectangle cellBounds, Rectangle cellClip, DataGridViewCellStyle cellStyle, bool singleVerticalBorderAdded, bool singleHorizontalBorderAdded, bool isFirstDisplayedColumn, bool isFirstDisplayedRow)
{
- if (setLocation && setSize)
- DataGridView.EditingControl.Bounds = cellBounds;
- else if (setLocation)
- DataGridView.EditingControl.Location = cellBounds.Location;
- else if (setSize)
- DataGridView.EditingControl.Size = cellBounds.Size;
+ if (DataGridView.EditingControl != null) {
+ if (setLocation && setSize)
+ DataGridView.EditingControl.Bounds = cellBounds;
+ else if (setLocation)
+ DataGridView.EditingControl.Location = cellBounds.Location;
+ else if (setSize)
+ DataGridView.EditingControl.Size = cellBounds.Size;
+ }
}
[EditorBrowsable (EditorBrowsableState.Advanced)]