Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 17th, 2012  |  syntax: None  |  size: 1.30 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. infinite loop caused by datagridview rowremoved event and its bound datatable.defaultview.sort property
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10.  
  11. namespace datagridviewsorterror
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         private void button1_Click(object sender, EventArgs e)
  21.         {
  22.             //Create a datatable
  23.  
  24.             DataTable dt = new DataTable();
  25.  
  26.             dt.Columns.Add("Number", typeof(int));
  27.             dt.Columns.Add("Number2", typeof(string));
  28.  
  29.             for (int i = 0; i < 4; i++)
  30.             {
  31.                 DataRow row = dt.NewRow();
  32.                 row["Number"] = i % 2;
  33.                 row["Number2"] = i;
  34.  
  35.                 dt.Rows.Add(row);
  36.             }
  37.  
  38.             dataGridView1.DataSource = dt;
  39.         }
  40.  
  41.         private void sortTable(DataTable dt)
  42.         {
  43.             dt.DefaultView.Sort = "Number, Number2";
  44.             dt.DefaultView.Sort = "";
  45.         }
  46.  
  47.         private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
  48.         {
  49.             sortTable(dataGridView1.DataSource as DataTable);
  50.         }
  51.  
  52.  
  53.     }
  54. }