Dear friends developers.
The property ScrollBars.Vertical or ScrollBars.Horizontal in the DataGridView
control is not working properly.
The horizontal and vertical bar is always visible.
Attached the following changes to correct operation.
Marcelo Marques Inácio
marceloina...@hotmail.com
Telefones:
(62) 9969-3839 Celular
CC: mig...@ximian.com
From: mig...@novell.com
To: marceloina...@hotmail.com
Subject: Re: Bug in DataGridView.ScrollBars
Date: Thu, 19 Feb 2009 08:41:58 -0500
Hello Marcelo,
Would you mind sending this as a patch?
It would be even better if you post this to the
mono-devel-list@lists.ximian.com for the patch to be reviewed and discussed.
Miguel.
On Feb 18, 2009, at 7:26 PM, Marcelo Marques Inácio wrote:
Dear Miguel;
Sorry, but the correct code for the attribute scrollbars is that it was
attached.
thanks
Marcelo Marques Inácio
marceloina...@hotmail.com
Telefones:
(62) 9969-3839 Celular
DataGridView.cs
_
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver
offline. Conheça o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br//#
// Atribute ScrollBars
//#
[DefaultValue (ScrollBars.Both)]
[Localizable (true)]
public ScrollBars ScrollBars
{
get { return scrollBars; }
set
{
if (!Enum.IsDefined(typeof(ScrollBars), value))
{
throw new InvalidEnumArgumentException(Invalid ScrollBars
value.);
}
/// *** InvalidOperationException ***
/// The System.Windows.Forms.DataGridView is unable to
/// scroll due to a cell change that cannot be committed
/// or canceled.
///
scrollBars = value;
if (value == ScrollBars.Vertical | value == ScrollBars.Both)
{
verticalScrollBar.Visible = true;
}
else
{
verticalScrollBar.Visible = false;
}
if (value == ScrollBars.Horizontal | value == ScrollBars.Both)
{
horizontalScrollBar.Visible = true;
}
else
{
horizontalScrollBar.Visible = false;
}
}
}
//#
// Atribute ScrollBars
//#
//#
// Function OnPaint
//#
...
if (AutoSize) {
if (gridWidth Size.Width || gridHeight
Size.Height) {
Size = new Size(gridWidth, gridHeight);
}
}
else {
if (horizontalScrollBar.Visible gridWidth Size.Width)
{
horizontalVisible = true;
}
if (verticalScrollBar.Visible gridHeight Size.Height)
{
verticalVisible = true;
}
if (verticalScrollBar.Visible horizontalScrollBar.Visible
(gridHeight + horizontalScrollBar.Height) Size.Height)
{
verticalVisible = true;
}
if (horizontalScrollBar.Visible verticalScrollBar.Visible
(gridWidth + verticalScrollBar.Width) Size.Width)
{
horizontalVisible = true;
}
if (horizontalVisible) {
horizontalScrollBar.Minimum = 0;
horizontalScrollBar.Maximum = gridWidth;
horizontalScrollBar.SmallChange =
Columns[first_col_index].Width;
int largeChange = ClientSize.Width -
rowHeadersWidth;
if (largeChange = 0)
largeChange = ClientSize.Width;
horizontalScrollBar.LargeChange =
largeChange;
}
if (verticalVisible)