У меня есть 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 выше, чем конец моей прокрутки, почему это произошло?