[Mono-winforms-list] ScrollBars.None prevents to show the last row of DataGridView
luisrl
larlxz at gmail.com
Fri Jul 23 14:01:31 EDT 2010
Stifu wrote:
>
> Please file a bug report with a complete test case.
>
> http://mono-project.com/Bugs
>
>
> luisrl wrote:
>>
>> 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);
>> }
>> }
>> }
>> }
>>
>
>
The report is:
https://bugzilla.novell.com/show_bug.cgi?id=625214
--
View this message in context: http://mono.1490590.n4.nabble.com/ScrollBars-None-prevents-to-show-the-last-row-of-DataGridView-tp2300409p2300532.html
Sent from the Mono - WinForms mailing list archive at Nabble.com.
More information about the Mono-winforms-list
mailing list