none
Windows Forms に値を渡す方法 RRS feed

  • 質問

  • Windows Form のアプリを作成中なのですが、次に開くフォームに値を渡したいと思っています。
    具体的には、初めのフォームのボタンのクリックイベントで、FindFormを開こうとしていますが、
    このFindForm に今ある状態を値で渡したいと思っています。

                FindForm form = new FindForm();
                form.ShowDialog();

    このような、普通の方法では、Public な値以外に渡すことが出来ないのですが、
    FindForm(); か、
    ShowDialog();
    の、このカッコの中に値を入れるなどの方法でPublic でない値を渡すことは出来ないのでしょうか?
    もし、出来ないとすれば、その他に方法はあるのでしょうか?

    なお、今回渡したい値とは、FindFormで探すデータベースのテーブル名やフィールド名です。
    FindForm のテキストボックスに入力した値を、あるテーブルの、あるフィールドデータベースから検索してその行を返すためです。
    FindFormを表示する前に、テーブル名とフィールド名を設定して、テキストボックスに入力した値を探そうとしています。

    よろしくお願いします。
    2010年2月3日 13:53

回答

  • ShowDialog()の括弧の中に値を入れたいのであれば、
    引数を持つShowDialogメソッドを作成して呼び出しをするというのはいかがでしょうか。

    public partial class FindForm  : Form
    {
        public FindForm ()
        {
            InitializeComponent();
        }
    
        public DialogResult ShowDialog(int parameter)
        {
            // parameterを使用した何らかの処理
    
            // 画面を表示
            return base.ShowDialog();
        }
    }
    • 回答としてマーク yasheeki 2010年2月3日 14:56
    2010年2月3日 14:43

すべての返信

  • 引数を持つ Form のコンストラクタを作って、その引数にして渡してはいかがですか?
    2010年2月3日 14:00
  • ShowDialog()の括弧の中に値を入れたいのであれば、
    引数を持つShowDialogメソッドを作成して呼び出しをするというのはいかがでしょうか。

    public partial class FindForm  : Form
    {
        public FindForm ()
        {
            InitializeComponent();
        }
    
        public DialogResult ShowDialog(int parameter)
        {
            // parameterを使用した何らかの処理
    
            // 画面を表示
            return base.ShowDialog();
        }
    }
    • 回答としてマーク yasheeki 2010年2月3日 14:56
    2010年2月3日 14:43
  • そういう方法があったのですね!
    不勉強でした。

    試してみます。
    有難うございました。
    2010年2月3日 14:56