-4

Formクラスの前にインスタンス化される別のクラス (AnotherClass という名前) があります。AnotherClass で Form クラスの新しいインスタンスを作成し、ユーザーにフォームを表示し、いくつかを受け入れますテキストボックスの double 値。[OK] ボタンをクリックすると、テキスト ボックスのテキストを引数として使用するAnotherClassのメソッドを呼び出したいのですが、どうすればよいですか? 助けてください。

4

2 に答える 2

0

私があなたの質問を正しく理解していれば、winform の状況があり、別のクラスの textbox 値または textbox にアクセスしたいと考えています。

もしそうなら、

public class AnotherClass
{
    public void YourMethodThatAccessTextBox(TextBox t)
    {
            // do something interesting with t;
    }
}

In your OK button

ok_click
{
   AnotherClass ac = new AnotherClass().YourMethodThatAccessTextBox(txtValue);
}
于 2013-09-15T19:49:08.633 に答える
0

これを解決するには2つの方法があります

最初の1つ:

FormClass で:

public string txt { get; set; } //A so called property
private void OK_button_Click(object sender, EventArgs e)
{
    txt = textBox.Text;
    this.DialogResult = System.Windows.Forms.DialogResult.OK;
    this.Close();
}

別のクラスで:

private void openForm() //Method in AnotherClass where you create your object of your FormClass
{
   FormClass fc = new FormClass ();
   if (fc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
   {
      YourMethodInAnotherClass(fc.txt);
   }
}

2 番目の解決策 (パラメーターを使用):

FormClass で:

AnotherClass anotherClass = null;
public FormClass(AnotherClass a) //Constructor with parameter (object of your AnotherClass)
{
    InitializeComponent();
    anotherClass = a;
}

private void OK_button_Click(object sender, EventArgs e)
{
    anotherClass.YourMethodInAnotherClass(textBox.Text);
    this.Close();
}

別のクラスで:

private void openForm()
{
    FormClass fc = new FormClass(this);
    fc.ShowDialog();
}

public void YourMethodInAnotherClass(string txt)
{
    //Do you work
}
于 2013-09-15T20:17:27.200 に答える