我有一个来自c#,我希望在复选框中单击后显示文本框。 但是当我向下滚动并检查时,文本框显示在错误的位置! 文本框必须与复选框处于同一级别。
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
textBox1.Visible = true;
}
并更改文本框的位置不会给出好的结果!
感谢您的帮助。
答案 0 :(得分:3)
你正在遇到一个尴尬的Panel控件怪癖,它只滚动可见的控件。当您在代码中显示它时,如果您使用了滚动条,它将具有错误的Location属性。您需要自己进行修正。看起来像这样:
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
if (!textBox1.Visible) {
textBox1.Location = new Point(textBox1.Left + panel1.AutoScrollPosition.X,
textBox1.Top + panel1.AutoScrollPosition.Y);
textBox1.Visible = true;
}
}
更好的选择是使用Enabled属性,而不是让用户迷失方向。在设计器中将其设置为False,然后:
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
textBox1.Enabled = true;
}