Я работаю над приложением Winform, используя .net 4.5.Как сбросить полосу прокрутки в верхней части окна
В моем проекте у меня есть окно, содержащее только кнопку.
Когда окно отображается, я добавляю много элементов управления динамически к точке, в которой необходима полоса прокрутки.
Как только элементы управления добавлены, я перемещаю одиночную кнопку в нижней части элементов управления в окне.
Этот шаг перемещения кнопки в нижней части элементов управления делает окно прокрутки вниз. Я проверил это, не перемещая кнопку в нижней части формы, и свиток остается наверху.
Я пробовал "this.VerticalScroll.Value = 0;" как до, так и после установки положения кнопки.
Вот код, так что вы можете получить более четкое представление о том, что я пытаюсь сделать:
public SignoffSurvey(int task_id)
{
InitializeComponent();
this.task_id = task_id;
int form_top = 10;
int question_num = 0;
XmlDocument doc = new XmlDocument();
doc.Load(DBHandler.getSetting("files_directory") + "\\" + "questionaire.xml");
foreach (XmlNode node in doc.SelectNodes("/Questions/Question"))
{
question_num++;
string type = node.Attributes["type"].Value;
int top = 0;
Panel pnl = new Panel();
pnl.AutoSize = true;
pnl.Top = form_top;
pnl.Left = 10;
Label text_lbl = new Label();
text_lbl.Top = top;
text_lbl.AutoSize = true;
text_lbl.Text = node["text"].InnerText;
pnl.Controls.Add(text_lbl);
top += text_lbl.Height + 5;
if (type == "mc" || type == "mct")
{
XmlNode choices = node["choices"];
Boolean fc = false;
foreach (XmlNode choice in choices.ChildNodes)
{
RadioButton rb = new RadioButton();
rb.AutoSize = true;
rb.Text = choice.InnerText;
rb.Top = top;
rb.Left = 10;
top += rb.Height + 5;
pnl.Controls.Add(rb);
if (!fc) // check first item.
{
fc = true;
rb.Checked = true;
}
}
}
if (type == "mct" || type == "txt")
{
TextBox tb = new TextBox();
tb.Multiline = true;
tb.Width = 500;
tb.Height = 250;
tb.Top = top;
tb.Left = 10;
pnl.Controls.Add(tb);
top += tb.Height + 5;
}
pnl.Height = top;
this.Controls.Add(pnl);
form_top += pnl.Height + 10;
}
this.VerticalScroll.Value = 0;
this.save_btn.Top = form_top;
}
Как можно заставить вертикальную прокрутку окна к вершине, независимо от того, где этот 1 кнопка перемещается ?