From: Ivan Zlatev Date: Fri, 23 Jan 2009 01:31:35 +0000 (-0000) Subject: 2009-01-23 Ivan N. Zlatev X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=929136cd2c6a90483b5ef22e71d5c74145f4c510;p=mono.git 2009-01-23 Ivan N. Zlatev * DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no editing control. svn path=/trunk/mcs/; revision=124279 --- diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog index abd4b9160cb..524d933169e 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog @@ -1,3 +1,8 @@ +2009-01-23 Ivan N. Zlatev + + * DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no + editing control. + 2009-01-23 Ivan N. Zlatev * DataGridView.cs: Fix new row adding/editing in the non-databound diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs index 5da81e5c3cd..f7df270ee7d 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs @@ -2295,7 +2295,8 @@ namespace System.Windows.Forms { 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) { @@ -5180,7 +5181,7 @@ namespace System.Windows.Forms { 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); } diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewCell.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewCell.cs index 08cac600695..7d66a5c008b 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewCell.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewCell.cs @@ -697,12 +697,14 @@ namespace System.Windows.Forms { [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)]