gpt4 book ai didi

c# - 展开和折叠 winform

转载 作者:行者123 更新时间:2023-11-30 16:24:45 25 4
gpt4 key购买 nike

我想做的是展开和折叠我的 winform 的中间部分。我知道这里有类似的问题,但没有一个能真正满足我的需要。我读过有关使用 FlowLayoutPanel 的信息,但我无法让它工作。

我想要实现的一个例子是:

我有我的 winform(例子)

example

当我单击 button1 时,它应该隐藏中间的文本框并缩小表单以隐藏空间,当我单击 button2 时反之亦然。无论哪种方式,button3 都应保持在显示或未显示文本框的位置下方。

到目前为止,我的尝试要么只是隐藏文本框而不对表单进行任何操作,要么缩小的幅度超出了应有的范围。我目前一直在将 AutoSize 设置为 true 并将 AutoSizeMode 设置为 GrowAndShrink

我见过可以执行此操作或类似操作的控件,但它们有箭头或小按钮来展开表单,我只需要按钮即可执行此操作。

有没有简单的方法来做到这一点?

感谢任何帮助。

更新

我已经尝试将高度设置为 0 并按照建议隐藏文本框,但它只是折叠了表单的右侧而不是中间。

Screenshot

最佳答案

您需要将表格的原始高度存储在一个变量中,以便稍后再次展开时可以恢复它。此外,如果将 Button3 锚定到底部,则在调整大小时不必处理它:

public partial class Form1 : Form {
private int originalHeight;

public Form1() {
InitializeComponent();
button3.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
}

protected override void OnLoad(EventArgs e) {
originalHeight = this.Height;
base.OnLoad(e);
}

private void button1_Click(object sender, EventArgs e) {
textBox1.Visible = false;
this.Height = originalHeight - textBox1.Height;
}

private void button2_Click(object sender, EventArgs e) {
this.Height = originalHeight;
textBox1.Visible = true;
}
}

在表单上保留 AutoSize=false;,因为您要自己处理调整大小。

我会考虑使用一个按钮来处理表单的切换,因为当表单展开时 Button2 毫无用处,反之亦然,如果表单折叠则 Button1 毫无用处。

关于c# - 展开和折叠 winform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10532114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com