0

フォームの非表示の問題に直面しています。

実際には、ユーザー コントロールを含むフォームがあります。ユーザーコントロールには送信ボタンがあり、それをクリックすると、ユーザーコントロールとそれを含むフォームが消えます。this.hide() を使用できますが、フォームではなくユーザー コントロールのみを非表示にしています。

私は

         form1 f1 = new form1();
         f1.hide();

そして試してみました

       f1.close(), 

しかし、何も機能していません。助けてください

編集:これは実際のコードです:

  Input inp = new Input();
            inp.Show();

入力フォームを呼び出す場所です。その読み込みイベントで、usinput ユーザー コントロールを呼び出します。

                USinput usinp = new USinput();

次に、ユーザー コントロールの送信ボタンで、次のコードを使用します。

         Input inpt = new Input();
            inpt.Hide();
            this.Hide();
            Companies co = new Companies();
            co.Show();

新しいフォームが表示され、ユーザー コントロールはなくなりましたが、入力フォームはまだ残っています。

4

1 に答える 1

0
  • そのコードだけで試しましたか?
  • コントロールが呼び出さf1れておらず、名前の競合がないことを確認しましたか?
  • コントロール クラス名は form1 ですか?

それは間違いなくその周りのものです。

編集:あなたの問題はここの最初の行にあります。

入力 inpt = 新しい入力(); inpt.Hide(); this.Hide(); 会社 co = new Companies(); co.Show();

UserControl で、新しいフォームを作成します。これでフォームが2つになりました!ただし、2番目のものは決して表示されません。フォームへの参照を UserControl に送信する必要があります。そうすれば、常に同じフォームを使用できます。

フォームから UserControl を作成する方法は次のとおりです。

USinput usinp = new USinput(this); //Will send a reference of the form to the control

コントロールのコンストラクターは次のようになります。

private Form parentForm;
public USinput(Input parentForm)
{
    this.parentForm = parentForm;
}

送信ボタンのコードには次のものが含まれます。

parentForm.hide();
于 2012-04-09T03:33:10.230 に答える