2009-01-23 Ivan N. Zlatev <contact@i-nz.net>
authorIvan Zlatev <ivan@ivanz.com>
Fri, 23 Jan 2009 01:31:35 +0000 (01:31 -0000)
committerIvan Zlatev <ivan@ivanz.com>
Fri, 23 Jan 2009 01:31:35 +0000 (01:31 -0000)
* DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no
editing control.

svn path=/trunk/mcs/; revision=124279

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewCell.cs

index abd4b9160cb14989bc2293e86c55c61332943b22..524d933169e4538405545429c577cb1ad4d1d5c5 100644 (file)
@@ -1,3 +1,8 @@
+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 
index 5da81e5c3cd48fec316e095aae096ea1eccdf135..f7df270ee7d56bc6f396fcf997856693d2c0d005 100644 (file)
@@ -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);
                        }
 
index 08cac600695235fac713d9599154491fdd1cf0f8..7d66a5c008bbfa998d3cd6db5380c7bb47a25731 100644 (file)
@@ -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)]