代码之家  ›  专栏  ›  技术社区  ›  John Dunagan

将WinForm的元素重置为初始化状态(C/.NET)[关闭]

  •  2
  • John Dunagan  · 技术社区  · 17 年前

    我正在用C语言构建一个WinForm,面板中有各种元素,它们要么不可见,要么禁用,要么设置为空(标签、组合框、网格等)。当用户经过并做出选择时,这些元素被填充、选择等。

    其思想是上传文件、读取文件并将条目处理到数据库中。此目录的处理完成后,我希望用户可以选择另一个目录,而不必退出并重新启动WinForm应用程序,方法是按一个按钮,该按钮在处理完成后变为可见。

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

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

    2 回复  |  直到 17 年前
        1
  •  2
  •   TcKs    17 年前

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

    编辑: Sample:

    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();
    }
    
        2
  •  1
  •   GWLlosa    17 年前

    您可以尝试调用这个.InitializeComponent(),这可以实现这个技巧。或者,如果您的应用程序有一个“目录选择”窗体和一个“处理文件”窗体,您可以让目录选择窗体在“处理文件”窗体上执行一个“新建”操作,该操作会将其返回到其原始状态(但不会在打开时执行)。

    推荐文章