2011-12-25 17 views
0

それのデータを失うことなく、WinFormsのフォーム非表示にする方法:私はcurrnet(this.close),を閉じる必要があり、別のフォームに移動したいとき私は、このように、C#でのウィザードを実装

private static void MyInitialization() 
{ 
    WizardData wData = new WizardData(); 
    wData.FormToShow = WizardData.wizardForms.FirstStep; 
    Form step1 = new FirstStep(wData); 
    Form step2 = new SecondStep(wData); 
    Form step3 = new ThirdStep(wData); 
    while (wData.FormToShow != WizardData.wizardForms.Cancel) 
    { 
    switch (wData.FormToShow) 
    { 
     case WizardData.wizardForms.FirstStep: 
     { 
       step1.ShowDialog(); 
       break; 
     } 
     case WizardData.wizardForms.SecondStep: 
     { 
      step2.ShowDialog(); 
      break; 
     } 
     case WizardData.wizardForms.ThirdStep: 
     { 
      step3.ShowDialog(); 
      break; 
      } 
     } 

をしかし、私は作りたいです現在visibility=falseと私は他のフォームに行くと、現在のフォームでデータを失うことはありません?

private void btnNext_Click(object sender, EventArgs e) 
{ 
     // to show the SecondStep form 
     wData.FormToShow = WizardData.wizardForms.SecondStep; 
     this.Close(); 
} 

+0

[C#でのWindowsフォームの作成ウィザード]の複製が可能です。(http://stackoverflow.com/questions/2340566/creating-wizards-for-windows-forms-in-c-sharp) –

答えて

2

Hide()方法

Form1.Hide(); 

をこのように使用し、フォームが表示されなくなり、データはあなたフォームのDispose()まで保存されます。

+0

ありがとう、フォーム間のちらつきを避けるために何ができますか? – user1082943

+0

ちらつきはどういう意味ですか? – Shai

+0

hide()フォームとShowDialog()を取得するフォームとの間のトランジション。このトランジションはsmooth.canではありません。これを修復できますか?ありがとう。 – user1082943

関連する問題