* UIDataGridView: 增加了可设置水平滚动条宽度的属性,但可能会遮挡最下面数据行的数据,看情况使用

This commit is contained in:
Sunny 2023-06-28 17:32:50 +08:00
parent 28cd82dc32
commit 525cc8fd27

View File

@ -44,6 +44,7 @@
* 2022-07-28: V3.2.2 ScrollBars为None时仍然显示滚动条的问题 * 2022-07-28: V3.2.2 ScrollBars为None时仍然显示滚动条的问题
* 2022-07-28: V3.2.2 * 2022-07-28: V3.2.2
* 2022-10-14: V3.2.6 * 2022-10-14: V3.2.6
* 2023-06-28: V3.3.9 使
******************************************************************************/ ******************************************************************************/
using System; using System;
@ -142,6 +143,32 @@ namespace Sunny.UI
} }
} }
private int scrollBarHeight = 0;
[DefaultValue(0), Category("SunnyUI"), Description("垂直滚动条宽度,最小为原生滚动条宽度")]
public int ScrollBarHeight
{
get => scrollBarHeight;
set
{
scrollBarHeight = value;
SetScrollInfo();
}
}
private int scrollBarHandleHeight = 6;
[DefaultValue(6), Category("SunnyUI"), Description("垂直滚动条滑块宽度,最小为原生滚动条宽度")]
public int ScrollBarHandleHeight
{
get => scrollBarHandleHeight;
set
{
scrollBarHandleHeight = value;
if (HBar != null) HBar.FillHeight = value;
}
}
/// <summary> /// <summary>
/// 禁止控件跟随窗体缩放 /// 禁止控件跟随窗体缩放
/// </summary> /// </summary>
@ -493,6 +520,7 @@ namespace Sunny.UI
} }
int barWidth = Math.Max(ScrollBarInfo.VerticalScrollBarWidth(), ScrollBarWidth); int barWidth = Math.Max(ScrollBarInfo.VerticalScrollBarWidth(), ScrollBarWidth);
int barHeight = Math.Max(ScrollBarInfo.HorizontalScrollBarHeight(), ScrollBarHeight);
if (BorderStyle == BorderStyle.FixedSingle) if (BorderStyle == BorderStyle.FixedSingle)
{ {
@ -503,7 +531,7 @@ namespace Sunny.UI
VBar.BringToFront(); VBar.BringToFront();
HBar.Left = 1; HBar.Left = 1;
HBar.Height = ScrollBarInfo.HorizontalScrollBarHeight() + 1; HBar.Height = barHeight + 1;
HBar.Width = Width - (VBar.Visible ? VBar.Width : 0) - 2; HBar.Width = Width - (VBar.Visible ? VBar.Width : 0) - 2;
HBar.Top = Height - HBar.Height - 1; HBar.Top = Height - HBar.Height - 1;
HBar.BringToFront(); HBar.BringToFront();
@ -517,7 +545,7 @@ namespace Sunny.UI
VBar.BringToFront(); VBar.BringToFront();
HBar.Left = 0; HBar.Left = 0;
HBar.Height = ScrollBarInfo.HorizontalScrollBarHeight() + 1; HBar.Height = barHeight + 1;
HBar.Width = Width - (VBar.Visible ? VBar.Width : 0); HBar.Width = Width - (VBar.Visible ? VBar.Width : 0);
HBar.Top = Height - HBar.Height; HBar.Top = Height - HBar.Height;
HBar.BringToFront(); HBar.BringToFront();