c# - 将 Windows 窗体表单的元素重置为初始化状态 (C#/.NET)

标签 c# asp.net winforms initialization

我正在构建一个 Windows Forms C# 中的表单,面板中的各种元素一开始不可见、禁用或设置为 null(标签、组合框、网格等)。当用户浏览并做出选择时,这些元素将被填充、选择等。

这个想法是上传文件、读取文件并将条目处理到数据库中。对该目录的处理完成后,我希望能够让用户选择另一个目录,而无需退出并重新启动 Windows 窗体应用程序,方法是按下处理完成后变得可见的按钮。

是否有一个简单的调用来重置应用程序(或包含元素的面板),类似于刷新网络表单时,或者我是否必须编写一个一次“重置”所有这些元素的函数?


结语:作为开发 session 的结果,我的项目改变了方向。我感谢两位帮助回答的人,我将结束这个问题。

最佳答案

只需从表单中删除面板并创建新面板即可。

示例:

Panel CreatePanelWithDynamicControls() {
    Panel ret = new Panel();
    ret.Dock = DockStyle.Fill;
    // Some logic, which initializes content of panel

    return ret;
}

void InitializeDynamicControls() {
    this.Controls.Clear();
    Panel pnl = this.CreatePanelWithDynamiControls();
    this.Controls.Add(pnl);
}

void Form1_Load(object sender, EventArgs e) {
    if (!this.DesignMode) {
        this.InitializeDynamicControls();
    }
}

// I don't know exactly, on which situation
// do you want reset controls
void SomeEvent(object sender, EventArgs e) {
    this.InitializeDynamicControls();
}

关于c# - 将 Windows 窗体表单的元素重置为初始化状态 (C#/.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/337649/

相关文章:

c# - 加载大型 XML 文件时如何解决 System.OutOfMemoryException

c# - 使用 TextBox 实时过滤 ListBox

c# - 如何使用c#在excel中创建点图、折线图?

c# - 使用通用属性名称处理 lambda 表达式

c# - EF 使用和 BeginTransaction,何时调用 Connection.Close()?

c# - Windows Mobile 7 - C# 将 SQL 转换为 Linq,删除表中除前 10 名之外的所有内容

c# - 使用辅助 UI 消息泵作为启动屏幕时出现异常

javascript - 如何在 JavaScript 中编写 radcombobox selectedindexchange 事件?

javascript - 复选框点击不同步-Jquery

c# - ASP.net C# 中的动态警告框