2

我正在用 C# 构建一个 winform,面板中有各种元素,这些元素从不可见、禁用或设置为 null(标签、组合框、网格等)开始。当用户经历并做出选择时,这些元素会被填充、选择等。

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

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

编辑:作为开发会议的结果,我的项目改变了方向。我感谢你们两个帮助回答的问题,我将结束这个问题。

4

2 回答 2

2

简单地从表单中删除面板并创建新面板。

编辑: 示例:

Panel CreatePanelWithDynamicControls() {
    Panel ret = new Panel();
    ret.Dock = DockStyle.Fill;
    // some logic, which initialize 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();
}
于 2008-12-03T16:11:55.643 回答
1

您可以尝试调用 this.InitializeComponent(),这可能会成功。或者,如果您的应用程序具有“目录选择”表单和“处理文件”表单,您可以让“目录选择”表单在“处理文件”表单上执行“新建”,这应该将其返回到其原始状态(而不是在它的开放,但)。

于 2008-12-03T16:10:47.423 回答