我有一个来自 c# 的内容,我想在单击复选框后显示文本框。但是当我向下滚动并检查时,文本框显示在错误的位置!文本框必须与复选框处于同一级别。
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
textBox1.Visible = true;
}
并且更改文本框的位置不会给出好的结果!
感谢帮助。
您遇到了 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;
}