View | Details | Raw Unified | Return to bug 472968
Collapse All | Expand All

(-)a/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog (+10 lines)
Lines 1-3 Link Here
1
2009-02-05  Ivan N. Zlatev  <contact@i-nz.net>
2
3
	* DataGridViewRowCollection.cs, DataGridView.cs: Fix row insertation: 
4
	   - Use ArrayList.Insert instead of the Item property so that the item 
5
	   is actually inserted and not an existing item replaced.
6
	   - Call DataGridView.OnRowsAddedInternal and drop internal from 
7
	   OnRowsAdded for binary compitability. This also fixes several 
8
	   redrawing issues.
9
	[Fixes bug #472968]
10
1
2009-02-05  Andrés G. Aragoneses  <aaragoneses@novell.com>
11
2009-02-05  Andrés G. Aragoneses  <aaragoneses@novell.com>
2
12
3
	* ToolBarButton.cs: Doh, fire OnUIATextChanged *after* setting
13
	* ToolBarButton.cs: Doh, fire OnUIATextChanged *after* setting
(-)a/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs (-1 / +1 lines)
Lines 4836-4842 namespace System.Windows.Forms { Link Here
4836
			OnRowsAdded (e);
4836
			OnRowsAdded (e);
4837
		}
4837
		}
4838
4838
4839
		protected internal virtual void OnRowsAdded (DataGridViewRowsAddedEventArgs e)
4839
		protected virtual void OnRowsAdded (DataGridViewRowsAddedEventArgs e)
4840
		{
4840
		{
4841
			DataGridViewRowsAddedEventHandler eh = (DataGridViewRowsAddedEventHandler)(Events [RowsAddedEvent]);
4841
			DataGridViewRowsAddedEventHandler eh = (DataGridViewRowsAddedEventHandler)(Events [RowsAddedEvent]);
4842
			if (eh != null) eh (this, e);
4842
			if (eh != null) eh (this, e);
(-)a/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewRowCollection.cs (-8 / +9 lines)
Lines 198-204 namespace System.Windows.Forms Link Here
198
			int result = 0;
198
			int result = 0;
199
			for (int i = 0; i < count; i++)
199
			for (int i = 0; i < count; i++)
200
				result = Add (dataGridView.RowTemplateFull as DataGridViewRow);
200
				result = Add (dataGridView.RowTemplateFull as DataGridViewRow);
201
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (result - count + 1, count));
201
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (result - count + 1, count));
202
			raiseEvent = true;
202
			raiseEvent = true;
203
			return result;
203
			return result;
204
		}
204
		}
Lines 223-229 namespace System.Windows.Forms Link Here
223
			int lastIndex = 0;
223
			int lastIndex = 0;
224
			for (int i = 0; i < count; i++)
224
			for (int i = 0; i < count; i++)
225
				lastIndex = AddCopy(indexSource);
225
				lastIndex = AddCopy(indexSource);
226
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (lastIndex - count + 1, count));
226
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (lastIndex - count + 1, count));
227
			raiseEvent = true;
227
			raiseEvent = true;
228
			return lastIndex;
228
			return lastIndex;
229
		}
229
		}
Lines 246-252 namespace System.Windows.Forms Link Here
246
				lastIndex = Add (row);
246
				lastIndex = Add (row);
247
				count++;
247
				count++;
248
			}
248
			}
249
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (lastIndex - count + 1, count));
249
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (lastIndex - count + 1, count));
250
			raiseEvent = true;
250
			raiseEvent = true;
251
		}
251
		}
252
252
Lines 404-413 namespace System.Windows.Forms Link Here
404
			dataGridViewRow.SetIndex (rowIndex);
404
			dataGridViewRow.SetIndex (rowIndex);
405
			dataGridViewRow.SetDataGridView (dataGridView);
405
			dataGridViewRow.SetDataGridView (dataGridView);
406
			CompleteRowCells (dataGridViewRow);
406
			CompleteRowCells (dataGridViewRow);
407
			list[rowIndex] = dataGridViewRow;
407
			list.Insert (rowIndex, dataGridViewRow);
408
			ReIndex ();
408
			OnCollectionChanged (new CollectionChangeEventArgs (CollectionChangeAction.Add, dataGridViewRow));
409
			OnCollectionChanged (new CollectionChangeEventArgs (CollectionChangeAction.Add, dataGridViewRow));
409
			if (raiseEvent)
410
			if (raiseEvent)
410
				DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (rowIndex, 1));
411
				DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (rowIndex, 1));
411
		}
412
		}
412
413
413
		public virtual void Insert (int rowIndex, int count)
414
		public virtual void Insert (int rowIndex, int count)
Lines 416-422 namespace System.Windows.Forms Link Here
416
			raiseEvent = false;
417
			raiseEvent = false;
417
			for (int i = 0; i < count; i++)
418
			for (int i = 0; i < count; i++)
418
				Insert (index++, dataGridView.RowTemplateFull);
419
				Insert (index++, dataGridView.RowTemplateFull);
419
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (rowIndex, count));
420
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (rowIndex, count));
420
			raiseEvent = true;
421
			raiseEvent = true;
421
		}
422
		}
422
423
Lines 437-443 namespace System.Windows.Forms Link Here
437
			int index = indexDestination;
438
			int index = indexDestination;
438
			for (int i = 0; i < count; i++)
439
			for (int i = 0; i < count; i++)
439
				InsertCopy (indexSource, index++);
440
				InsertCopy (indexSource, index++);
440
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (indexDestination, count));
441
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (indexDestination, count));
441
			raiseEvent = true;
442
			raiseEvent = true;
442
		}
443
		}
443
444
Lines 455-461 namespace System.Windows.Forms Link Here
455
				Insert (index++, row);
456
				Insert (index++, row);
456
				count++;
457
				count++;
457
			}
458
			}
458
			DataGridView.OnRowsAdded (new DataGridViewRowsAddedEventArgs (rowIndex, count));
459
			DataGridView.OnRowsAddedInternal (new DataGridViewRowsAddedEventArgs (rowIndex, count));
459
			raiseEvent = true;
460
			raiseEvent = true;
460
		}
461
		}
461
462

Return to bug 472968