c#中,同个from分别实例化,所有实例化并显示的界面分别用textbox输入不同的数值,当关闭显示后,在次分别显示from时,textbox还是之前输入的值,如何实现?
时间: 2024-12-19 12:15:49 浏览: 6
在 C# 中,如果你想让每次实例化的 Form 中的 TextBox 保持上次关闭时的输入值,你需要存储这些值并在 Form 的 Load 事件中读取它们。这里是一个基本的实现方法:
1. **添加TextBox和字段来保存数据**:
在 Form 类中,声明一个 TextBox 和一个静态变量来存储值,比如:
```csharp
public partial class YourForm : Form
{
private static string textBoxValue;
private TextBox textBox;
public YourForm()
{
InitializeComponent();
if (!string.IsNullOrEmpty(textBoxValue))
textBox.Text = textBoxValue; // 设置初始值
}
}
```
确保TextBox存在于UI中并且有名称,如 `textBox1`。
2. **关闭 Form 时保存值**:
在 Form 的 Closing 事件中,将 TextBox 的值保存到静态变量:
```csharp
private void YourForm_Closing(object sender, CancelEventArgs e)
{
textBoxValue = textBox.Text; // 保存 TextBox 内容
}
```
3. **再次显示 Form 时恢复值**:
刷新 Form 时,会自动调用 Form 的 Load 事件,所以在那里设置初始值即可。
现在,每次显示 Form 时,TextBox 的内容应该和上一次关闭时的一致。如果希望清空输入再让用户输入,可以在 Form 加载后的某个地方加入代码清空 TextBox,如 `textBox.Clear()`。
阅读全文