Objetive: Show the last row of the DataGridView automatically after adding a new row.
Problem: When DataGridView.ScrollBars = Scrollbars.None, then the DataGridView does not show the last row. The objetive worked in: Windows 2000, XP, Vista, 7, etc. .NET Framework 2.0, 3.5 and 4.0 The problem happened in: Ubuntu 10.04 Mono 2.4.4 Windows Server 2008 Mono 2.6.7 How to use the code: Press the button called "Add" to add a row. Keep pressing the button called "Add" to see how the list is growing and the grid keeps showing the last row when the scrollbar is visible. It works fine. Now, press the button called "Bars" to set the ScrollBars to "Scrollbars.None". The Scrollbar will disappear. Continue pressing the button called "Add" to see that the grid won't show the last row. Reason: For user interface purposes, I need to set ScrollBars.None; but when I set that, the objetive fails in mono. Any suggestion about how to solve it? Thanks Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { DataGridView Grid = new DataGridView(); DataTable Dt = new DataTable(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //Resize the form this.Height = 250; this.Width = 400; //Create the columns of the table Dt.Columns.Add("One", typeof(string)); Dt.Columns.Add("Two", typeof(string)); //Set the grid Grid.AllowUserToAddRows = false; Grid.AllowUserToDeleteRows = false; Grid.Height = 150; Grid.Location = new Point(50, 0); Grid.Width = 300; Button BtnAdd = new Button(); BtnAdd.Height = 25; BtnAdd.Location = new Point(50, 175); BtnAdd.Width = 50; BtnAdd.Text = "Add"; BtnAdd.Click += new System.EventHandler(this.BtnAdd_Click); //Create the "What if..." button Button BtnIf = new Button(); BtnIf.Height = 25; BtnIf.Location = new Point(150, 175); BtnIf.Width = 50; BtnIf.Text = "Bars"; BtnIf.Click += new System.EventHandler(this.BtnIf_Click); //Add the controls to the form this.Controls.Add(Grid); this.Controls.Add(BtnAdd); this.Controls.Add(BtnIf); //Bind Grid.DataSource = Dt; } private void Add() { //Add a row DataRow Row = Dt.NewRow(); Row["One"] = "Can you"; Row["Two"] = "see me?"; Dt.Rows.Add(Row); if (Grid.Rows.Count > 0) { int Count = Grid.Rows.Count; Grid.CurrentCell = Grid.Rows[Count - 1].Cells["One"]; } } private void BtnAdd_Click(object sender, EventArgs e) { try { Add(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void BtnIf_Click(object sender, EventArgs e) { try { if (Grid.ScrollBars == ScrollBars.Both) { Grid.ScrollBars = ScrollBars.None; } else { Grid.ScrollBars = ScrollBars.Both; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } -- View this message in context: http://mono.1490590.n4.nabble.com/ScrollBars-None-prevents-to-show-the-last-row-of-DataGridView-tp2300409p2300409.html Sent from the Mono - WinForms mailing list archive at Nabble.com. _______________________________________________ Mono-winforms-list maillist - Mono-winforms-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-winforms-list