c# - 在 TableLayoutPanel 中检测垂直滚动的结束
问题描述
我有一个TableLayoutPanel
在其中插入多个项目的位置,因此ScrollBar
位置会根据我从端点获得的项目而改变。
添加到面板的控件被添加到foreach
如下语句中:
foreach (var test in testList)
{
//Multiple Combobox, panels etc. created programatically
tableLayoutPanel.Controls.Add(control1);
tableLayoutPanel.Controls.Add(control2);
tableLayoutPanel.Controls.Add(control3);
}
FormatPanel(tableLayoutPanel);
我也将我的面板格式化为:
private void FormatPanel(TableLayoutPanel panel)
{
TableLayoutRowStyleCollection styles = panel.RowStyles;
foreach (RowStyle style in styles)
{
style.SizeType = SizeType.Absolute;
style.Height = 50;
}
panel.HorizontalScroll.Maximum = 0;
panel.AutoScroll = false;
panel.VerticalScroll.Visible = false;
panel.AutoScroll = true;
}
我想知道如何检测ScrollBar
位置是否在地面并触发事件?
怎样才能做到这一点?
更新
我尝试在之后立即使用构造函数InitializeComponent()
tableLayoutPanel.Scroll += (s, e) => {
HandleScroll();
};
然后我创建HandleScroll
方法:
private void HandleScroll()
{
var maxVerticalScroll = tableLayoutPanel.VerticalScroll.Maximum;
if (tableLayoutPanel.VerticalScroll.Value == maxVerticalScroll)
{
var a = "";
}
}
但是由于某种原因 maxvalue 高于我滚动的结尾,为什么会发生这种情况?
解决方案
推荐阅读
- python - 如何在没有 ssl 证书的情况下使用 python 更新 Microsoft Active Directory 密码
- angularjs - AngularJS 长度过滤器
- php - 使 div 可水平滚动
- javascript - 如何发送分块的音频数据BIng语音休息api js
- c# - 在 C# 中的数组中添加动态列
- python - 根据条件执行函数
- java - 如何在android上使用jena ontology api?
- ios - 如何在 swift 4.1 中从服务器获取图像
- windows - 在 Winodws Universal App (Javascript) 和客户端 Android 中创建服务器 TCP
- windows - Windows内核驱动程序:“CLIENT_ID CreatingThreadId”中的“HANDLE UniqueThread”在进程加载过程中是否相同?