Passing variables from main form to input form

前端 未结 3 1223
清歌不尽
清歌不尽 2020-12-22 12:15

I have a simple question. I have a main form, and then a startup form from where I can select a new 3D model to generate. When selecting a new 3D model from the startup form

3条回答
  •  温柔的废话
    2020-12-22 12:31

    Here's my suggestion: place a 3DModel object property in your main form:

    private Model _model;
    

    Declare your startup form as a Dialog ( like OpenFileDialog) and do something like this:

    public void OpenModel()
    {
        using(var frm=new StartUpForm())
        {
            if(frm.ShowDialog()==DialogResult.OK))
            {
                if(_model.IsDirty)
                {
                    if(MessageBox.Show("Model is changed do you want to save it?","",MessageBoxButtons.YesNo)==DialogResult.Yes)
                        _model.Save();
    
                    _model=frm.SelectedModel;
                }
            }
        }
    }
    

    your startup form should have a interface like this:

    public interface IStartupForm:IDisposable
    {
        DialogResult ShowDialog(IWin32Window parent);
        Model SelectedModel{get;}
    }
    

提交回复
热议问题