+ public void GetClipboardContents ()
+ {
+ DataObject data;
+ string csv, html, utext, text;
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFill ()) {
+ data = dgv.GetClipboardContent ();
+ Assert.IsNull (data, "#01");
+
+ dgv.Rows [0].Cells [0].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#B1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#B2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#B3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual ("Cell A1", csv, "CSV B");
+ Assert.AreEqual ("Cell A1", utext, "UTEXT B");
+ Assert.AreEqual ("Cell A1", text, "TEXT B");
+ Assert.AreEqual (string.Format(@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000211{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000175{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML B");
+
+ dgv.Rows [1].Cells [1].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#C1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#C2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#C3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual (string.Format("Cell A1,{0},Cell B2", Environment.NewLine), csv, "CSV C");
+ Assert.AreEqual (string.Format("Cell A1\t{0}\tCell B2", Environment.NewLine), utext, "UTEXT C");
+ Assert.AreEqual (string.Format("Cell A1\t{0}\tCell B2", Environment.NewLine), text, "TEXT C");
+ string tmp;
+ tmp = string.Format(@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000266{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000230{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD><TD> </TD></TR><TR><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n");
+
+ Assert.AreEqual (string.Format(@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000266{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000230{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD><TD> </TD></TR><TR><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML C");
+ }
+ }
+
+ [Test]
+ public void GetClipboardContents_HeadersAlways ()
+ {
+ DataObject data;
+ string csv, html, utext, text;
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFill ()) {
+ dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
+ data = dgv.GetClipboardContent ();
+ Assert.IsNull (data, "#01");
+
+ dgv.Rows [0].Cells [0].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#B1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#B2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#B3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual (string.Format (",A{0},Cell A1", Environment.NewLine), csv, "CSV B");
+ Assert.AreEqual (string.Format ("\tA{0}\tCell A1", Environment.NewLine), utext, "UTEXT B");
+ Assert.AreEqual (string.Format ("\tA{0}\tCell A1", Environment.NewLine), text, "TEXT B");
+ Assert.AreEqual (string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000281{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000245{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><THEAD><TH> </TH><TH>A</TH></THEAD><TR><TD ALIGN=\"center\"> </TD><TD>Cell A1</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML B");
+
+ dgv.Rows [1].Cells [1].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#C1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#C2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#C3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual (string.Format (",A,B{0},Cell A1,{0},,Cell B2", Environment.NewLine), csv, "CSV C");
+ Assert.AreEqual (string.Format ("\tA\tB{0}\tCell A1\t{0}\t\tCell B2", Environment.NewLine), utext, "UTEXT C");
+ Assert.AreEqual (string.Format ("\tA\tB{0}\tCell A1\t{0}\t\tCell B2", Environment.NewLine), text, "TEXT C");
+ string tmp;
+ tmp = string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000266{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000230{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD><TD> </TD></TR><TR><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n");
+
+ Assert.AreEqual (string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000376{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000340{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><THEAD><TH> </TH><TH>A</TH><TH>B</TH></THEAD><TR><TD ALIGN=\"center\"> </TD><TD>Cell A1</TD><TD> </TD></TR><TR><TD ALIGN=\"center\"> </TD><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML C");
+ }
+ }
+
+ [Test]
+ public void GetClipboardContents_HeadersNever ()
+ {
+ DataObject data;
+ string csv, html, utext, text;
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFill ()) {
+ dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
+ data = dgv.GetClipboardContent ();
+ Assert.IsNull (data, "#01");
+
+ dgv.Rows [0].Cells [0].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#B1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#B2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#B3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual ("Cell A1", csv, "CSV B");
+ Assert.AreEqual ("Cell A1", utext, "UTEXT B");
+ Assert.AreEqual ("Cell A1", text, "TEXT B");
+ Assert.AreEqual (string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000211{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000175{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML B");
+
+ dgv.Rows [1].Cells [1].Selected = true;
+
+ data = dgv.GetClipboardContent ();
+ Assert.IsNotNull (data, "#C1");
+
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (), "#C2");
+ Assert.AreEqual (new string [] { DataFormats.CommaSeparatedValue, DataFormats.Html, DataFormats.UnicodeText, DataFormats.Text }, data.GetFormats (true), "#C3");
+
+ csv = data.GetData (DataFormats.CommaSeparatedValue) as string;
+ html = data.GetData (DataFormats.Html) as string;
+ utext = data.GetData (DataFormats.UnicodeText) as string;
+ text = data.GetData (DataFormats.Text) as string;
+
+ Assert.AreEqual (string.Format ("Cell A1,{0},Cell B2", Environment.NewLine), csv, "CSV C");
+ Assert.AreEqual (string.Format ("Cell A1\t{0}\tCell B2", Environment.NewLine), utext, "UTEXT C");
+ Assert.AreEqual (string.Format ("Cell A1\t{0}\tCell B2", Environment.NewLine), text, "TEXT C");
+ string tmp;
+ tmp = string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000266{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000230{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD><TD> </TD></TR><TR><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n");
+
+ Assert.AreEqual (string.Format (@"Version:1.0{0}" +
+"StartHTML:00000097{0}" +
+"EndHTML:00000266{0}" +
+"StartFragment:00000133{0}" +
+"EndFragment:00000230{0}" +
+"<HTML>{0}" +
+"<BODY>{0}" +
+"<!--StartFragment--><TABLE><TR><TD>Cell A1</TD><TD> </TD></TR><TR><TD> </TD><TD>Cell B2</TD></TR></TABLE>{0}" +
+"<!--EndFragment-->{0}" +
+"</BODY>{0}" +
+"</HTML>", "\r\n"), html, "HTML C");
+ }
+ }
+
+ [Test]
+ public void EditingRow ()
+ {
+ using (DataGridView dgv = new DataGridView ()) {
+ Assert.AreEqual (true, dgv.AllowUserToAddRows, "1");
+ Assert.AreEqual (0, dgv.RowCount, "2");
+ Assert.AreEqual (-1, dgv.NewRowIndex, "3");
+ dgv.Columns.Add ("A", "B");
+ Assert.AreEqual (1, dgv.RowCount, "4");
+
+ int added;
+ added = dgv.Rows.Add ("a");
+ Assert.AreEqual (0, added, "5");
+ }
+ }
+
+ [Test] // bug 82226
+ public void EditingRowAfterAddingColumns ()
+ {
+ using (DataGridView _dataGridView = new DataGridView ()) {
+ DataGridViewTextBoxColumn _nameTextBoxColumn;
+ DataGridViewTextBoxColumn _firstNameTextBoxColumn;
+ //
+ // _nameTextBoxColumn
+ //
+ _nameTextBoxColumn = new DataGridViewTextBoxColumn ();
+ _nameTextBoxColumn.HeaderText = "Name";
+ _dataGridView.Columns.Add (_nameTextBoxColumn);
+ //
+ // _firstNameTextBoxColumn
+ //
+ _firstNameTextBoxColumn = new DataGridViewTextBoxColumn ();
+ _firstNameTextBoxColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ _firstNameTextBoxColumn.HeaderText = "First Name";
+ _dataGridView.Columns.Add (_firstNameTextBoxColumn);
+
+ _dataGridView.Rows.Add ("de Icaza", "Miguel");
+ _dataGridView.Rows.Add ("Toshok", "Chris");
+ _dataGridView.Rows.Add ("Harper", "Jackson");
+
+ Assert.AreEqual (4, _dataGridView.RowCount, "#01");
+ Assert.AreEqual (2, _dataGridView.Rows [3].Cells.Count, "#02");
+ }
+ }
+
+ [Test]
+ public void bug_81918 ()
+ {
+ using (DataGridView dgv = new DataGridView ()) {
+ DataGridViewColumn col = new DataGridViewComboBoxColumn ();
+
+ dgv.Columns.Add (col);
+
+ dgv.Rows.Add ("a");
+
+ DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell) dgv [0, 0];
+ }
+ }
+
+ [Test]
+ public void SelectedRowsTest ()
+ {
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+ dgv.Rows [1].Selected = true;
+ Assert.AreEqual (1, dgv.SelectedRows.Count, "1-1");
+ Assert.AreEqual (1, dgv.SelectedRows [0].Index, "1-2");
+ dgv.Rows [3].Selected = true;
+ Assert.AreEqual (2, dgv.SelectedRows.Count, "1-3");
+ Assert.AreEqual (3, dgv.SelectedRows [0].Index, "1-4");
+ Assert.AreEqual (1, dgv.SelectedRows [1].Index, "1-5");
+ dgv.Rows [2].Selected = true;
+ Assert.AreEqual (3, dgv.SelectedRows.Count, "1-6");
+ Assert.AreEqual (2, dgv.SelectedRows [0].Index, "1-7");
+ Assert.AreEqual (3, dgv.SelectedRows [1].Index, "1-8");
+ Assert.AreEqual (1, dgv.SelectedRows [2].Index, "1-9");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ dgv.SelectionMode = DataGridViewSelectionMode.CellSelect;
+ dgv.Rows [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "3-1");
+ dgv.Rows [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "3-3");
+ dgv.Rows [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "3-6");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
+ dgv.Rows [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "4-1");
+ dgv.Rows [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "4-3");
+ dgv.Rows [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "4-6");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
+ dgv.Rows [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "5-1");
+ dgv.Rows [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "5-3");
+ dgv.Rows [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedRows.Count, "5-6");
+ }
+ }
+
+ [Test] // bug #325979
+ public void SelectedRows_FindColumnByName ()
+ {
+ DataTable dt = new DataTable ();
+ dt.Columns.Add ("Date", typeof (DateTime));
+ dt.Columns.Add ("Registered", typeof (bool));
+ dt.Columns.Add ("Event", typeof (string));
+
+ DataRow row = dt.NewRow ();
+ row ["Date"] = new DateTime (2007, 2, 3);
+ row ["Event"] = "one";
+ row ["Registered"] = false;
+ dt.Rows.Add (row);
+
+ row = dt.NewRow ();
+ row ["Date"] = new DateTime (2008, 3, 4);
+ row ["Event"] = "two";
+ row ["Registered"] = true;
+ dt.Rows.Add (row);
+
+ DataGridView dgv = new DataGridView ();
+ dgv.DataSource = dt;
+
+ Form form = new Form ();
+ form.ShowInTaskbar = false;
+ form.Controls.Add (dgv);
+ form.Show ();
+
+ dgv.Rows [1].Selected = true;
+
+ DataGridViewCell cell = dgv.SelectedRows [0].Cells ["DaTE"];
+ Assert.IsNotNull (cell, "#A1");
+ Assert.IsNotNull (cell.OwningColumn, "#A2");
+ Assert.AreEqual ("Date", cell.OwningColumn.Name, "#A3");
+ Assert.IsNotNull (cell.Value, "#A4");
+ Assert.AreEqual (new DateTime (2008, 3, 4), cell.Value, "#A5");
+
+ cell = dgv.SelectedRows [0].Cells ["Event"];
+ Assert.IsNotNull (cell, "#B1");
+ Assert.IsNotNull (cell.OwningColumn, "#B2");
+ Assert.AreEqual ("Event", cell.OwningColumn.Name, "#B3");
+ Assert.IsNotNull (cell.Value, "#B3");
+ Assert.AreEqual ("two", cell.Value, "#B4");
+
+ form.Dispose ();
+ }
+
+ [Test]
+ public void SelectedColumnsTest ()
+ {
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
+ dgv.Columns [1].Selected = true;
+ Assert.AreEqual (1, dgv.SelectedColumns.Count, "1-1");
+ Assert.AreEqual (1, dgv.SelectedColumns [0].Index, "1-2");
+ dgv.Columns [3].Selected = true;
+ Assert.AreEqual (2, dgv.SelectedColumns.Count, "1-3");
+ Assert.AreEqual (3, dgv.SelectedColumns [0].Index, "1-4");
+ Assert.AreEqual (1, dgv.SelectedColumns [1].Index, "1-5");
+ dgv.Columns [2].Selected = true;
+ Assert.AreEqual (3, dgv.SelectedColumns.Count, "1-6");
+ Assert.AreEqual (2, dgv.SelectedColumns [0].Index, "1-7");
+ Assert.AreEqual (3, dgv.SelectedColumns [1].Index, "1-8");
+ Assert.AreEqual (1, dgv.SelectedColumns [2].Index, "1-9");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
+ dgv.Columns [1].Selected = true;
+ Assert.AreEqual (1, dgv.SelectedColumns.Count, "2-1");
+ Assert.AreEqual (1, dgv.SelectedColumns [0].Index, "2-2");
+ dgv.Columns [3].Selected = true;
+ Assert.AreEqual (2, dgv.SelectedColumns.Count, "2-3");
+ Assert.AreEqual (3, dgv.SelectedColumns [0].Index, "2-4");
+ Assert.AreEqual (1, dgv.SelectedColumns [1].Index, "2-5");
+ dgv.Columns [2].Selected = true;
+ Assert.AreEqual (3, dgv.SelectedColumns.Count, "2-6");
+ Assert.AreEqual (2, dgv.SelectedColumns [0].Index, "2-7");
+ Assert.AreEqual (3, dgv.SelectedColumns [1].Index, "2-8");
+ Assert.AreEqual (1, dgv.SelectedColumns [2].Index, "2-9");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ dgv.SelectionMode = DataGridViewSelectionMode.CellSelect;
+ dgv.Columns [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "3-1");
+ dgv.Columns [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "3-3");
+ dgv.Columns [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "3-6");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
+ dgv.Columns [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "4-1");
+ dgv.Columns [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "4-3");
+ dgv.Columns [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "4-6");
+ }
+
+ using (DataGridView dgv = DataGridViewCommon.CreateAndFillBig ()) {
+ foreach (DataGridViewColumn col in dgv.Columns)
+ col.SortMode = DataGridViewColumnSortMode.NotSortable;
+ dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+ dgv.Columns [1].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "5-1");
+ dgv.Columns [3].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "5-3");
+ dgv.Columns [2].Selected = true;
+ Assert.AreEqual (0, dgv.SelectedColumns.Count, "5-6");
+ }
+ }
+
+ [Test]
+ public void TopLeftHeaderCellTest ()
+ {
+ Assert.Ignore("Missing quite a few bits still");
+
+ using (DataGridView dgv = new DataGridView ()) {
+ DataGridViewHeaderCell cell = dgv.TopLeftHeaderCell;
+
+ cell = dgv.TopLeftHeaderCell;
+
+ Assert.IsNotNull (cell, "#01");
+ Assert.AreEqual (cell.DataGridView, dgv, "#02");
+ Assert.AreEqual ("DataGridViewTopLeftHeaderCell", cell.GetType ().Name, "#03");
+
+ Assert.IsNotNull (cell.AccessibilityObject, "#cell.AccessibilityObject");
+ Assert.AreEqual (-1, cell.ColumnIndex, "#cell.ColumnIndex");
+ // /* NIE for the moment... */ Assert.IsNotNull (cell.ContentBounds, "#cell.ContentBounds");
+ Assert.IsNull (cell.ContextMenuStrip, "#cell.ContextMenuStrip");
+ Assert.IsNotNull (cell.DataGridView, "#cell.DataGridView");
+ Assert.IsNull (cell.DefaultNewRowValue, "#cell.DefaultNewRowValue");
+ Assert.AreEqual (false, cell.Displayed, "#cell.Displayed");
+ // /* NIE for the moment... */ Assert.AreEqual (@"", cell.EditedFormattedValue, "#cell.EditedFormattedValue");
+ Assert.IsNotNull (cell.EditType, "#cell.EditType");
+ Assert.IsNotNull (cell.ErrorIconBounds, "#cell.ErrorIconBounds");
+ Assert.AreEqual (@"", cell.ErrorText, "#cell.ErrorText");
+ // /* NIE for the moment... */ Assert.AreEqual (@"", cell.FormattedValue, "#cell.FormattedValue");
+ Assert.IsNotNull (cell.FormattedValueType, "#cell.FormattedValueType");
+ // /* NIE for the moment... */ Assert.AreEqual (true, cell.Frozen, "#cell.Frozen");
+ Assert.AreEqual (false, cell.HasStyle, "#cell.HasStyle");
+ Assert.AreEqual (DataGridViewElementStates.Frozen | DataGridViewElementStates.ReadOnly | DataGridViewElementStates.Resizable | DataGridViewElementStates.ResizableSet | DataGridViewElementStates.Visible, cell.InheritedState, "#cell.InheritedState");
+ Assert.IsNotNull (cell.InheritedStyle, "#cell.InheritedStyle");
+ try {
+ object zxf = cell.IsInEditMode;
+ TestHelper.RemoveWarning (zxf);
+ Assert.Fail ("Expected 'System.InvalidOperationException', but no exception was thrown.", "#cell.IsInEditMode");
+ } catch (InvalidOperationException ex) {
+ Assert.AreEqual (@"Operation cannot be performed on a cell of a shared row.", ex.Message);
+ } catch (Exception ex) {
+ Assert.Fail ("Expected 'System.InvalidOperationException', got '" + ex.GetType ().FullName + "'.", "#cell.IsInEditMode");
+ }
+ Assert.IsNull (cell.OwningColumn, "#cell.OwningColumn");
+ Assert.IsNull (cell.OwningRow, "#cell.OwningRow");
+ Assert.IsNotNull (cell.PreferredSize, "#cell.PreferredSize");
+ Assert.AreEqual (true, cell.ReadOnly, "#cell.ReadOnly");
+ Assert.AreEqual (true, cell.Resizable, "#cell.Resizable");
+ Assert.AreEqual (-1, cell.RowIndex, "#cell.RowIndex");
+ Assert.AreEqual (false, cell.Selected, "#cell.Selected");
+ Assert.IsNotNull (cell.Size, "#cell.Size");
+ Assert.AreEqual (DataGridViewElementStates.None, cell.State, "#cell.State");
+ if (cell.HasStyle)
+ Assert.IsNotNull (cell.Style, "#cell.Style");
+ Assert.IsNull (cell.Tag, "#cell.Tag");
+ Assert.AreEqual (@"", cell.ToolTipText, "#cell.ToolTipText");
+ Assert.IsNull (cell.Value, "#cell.Value");
+ Assert.IsNotNull (cell.ValueType, "#cell.ValueType");
+ Assert.AreEqual (true, cell.Visible, "#cell.Visible");
+ }
+ }
+
+ [Test]
+ public void TestDefaultValues ()
+ {
+ DataGridView grid = new DataGridView ();
+ Assert.AreEqual (true, grid.AllowUserToAddRows, "#A1");
+ Assert.AreEqual (true, grid.AllowUserToDeleteRows, "#A2");
+ Assert.AreEqual (false, grid.AllowUserToOrderColumns, "#A3");
+ Assert.AreEqual (true, grid.AllowUserToResizeColumns, "#A4");
+ Assert.AreEqual (true, grid.AllowUserToResizeRows, "#A5");
+ Assert.AreEqual (new DataGridViewCellStyle(), grid.AlternatingRowsDefaultCellStyle, "#A6");
+ Assert.AreEqual (true, grid.AutoGenerateColumns, "#A7");
+ Assert.AreEqual (DataGridViewAutoSizeRowsMode.None, grid.AutoSizeRowsMode, "#A8");
+ Assert.AreEqual (Control.DefaultBackColor, grid.BackColor, "#A9");
+ Assert.AreEqual (SystemColors.AppWorkspace, grid.BackgroundColor, "#A10");
+ Assert.AreEqual (BorderStyle.FixedSingle, grid.BorderStyle, "#A11");
+ Assert.AreEqual (DataGridViewClipboardCopyMode.EnableWithAutoHeaderText, grid.ClipboardCopyMode, "#A12");
+ Assert.AreEqual (DataGridViewColumnHeadersHeightSizeMode.EnableResizing, grid.ColumnHeadersHeightSizeMode, "#A21");
+ Assert.AreEqual (true, grid.ColumnHeadersVisible, "#A22");
+ Assert.AreEqual (String.Empty, grid.DataMember, "#A23");
+ Assert.AreEqual (DataGridViewEditMode.EditOnKeystrokeOrF2, grid.EditMode, "#A31");
+ Assert.AreEqual (Control.DefaultFont, grid.Font, "#A32");
+ Assert.AreEqual (Control.DefaultForeColor, grid.ForeColor, "#A33");
+ Assert.AreEqual (Color.FromKnownColor(KnownColor.ControlDark), grid.GridColor, "#A34");
+ Assert.AreEqual (true, grid.MultiSelect, "#A35");
+ Assert.AreEqual (grid.Rows.Count - 1, grid.NewRowIndex, "#A36");
+ Assert.AreEqual (Padding.Empty, grid.Padding, "#A37");
+ Assert.AreEqual (false, grid.ReadOnly, "#A38");
+ Assert.AreEqual (true, grid.RowHeadersVisible, "#A39");
+ Assert.AreEqual (41, grid.RowHeadersWidth, "#A40");
+ Assert.AreEqual (DataGridViewSelectionMode.RowHeaderSelect, grid.SelectionMode, "#A41");
+ Assert.AreEqual (true, grid.ShowCellErrors, "#A42");
+ Assert.AreEqual (true, grid.ShowEditingIcon, "#A43");
+ Assert.AreEqual (Cursors.Default, grid.UserSetCursor, "#A44");
+ Assert.AreEqual (false, grid.VirtualMode, "#A45");
+ }
+
+#region AutoSizeColumnsModeExceptions
+
+ [Test]
+ [ExpectedException (typeof (InvalidEnumArgumentException))]
+ public void TestAutoSizeColumnsModeInvalidEnumArgumentException ()
+ {