3

Form2のボタン(form2のbutton1は「STARTA」)をクリックして、Form1のテキストボックスのテキストを変更しようとしましたが、おそらく2時間ほど費やしました(私はプログラミング初心者です!)。私は似たような質問を探し回っていて、たくさん見つけましたが、たくさん試してもうまくいきません。

Form1[デザイン]

ここに画像の説明を入力

Form2[デザイン]

ここに画像の説明を入力

私が今試している方法は、ここで見つけたものです

Form1 で私はこれを書いた:

public string STARTTID
{
    get
    {
        return this.textBox3.Text;
    }
    set
    {
        this.textBox3.Text = value;
    }
}

空の textBox を取得して設定するのはあまり意味がないことはわかっていますが、機能すると思われるさまざまなソリューションを試してみましたが、ボタンをクリックしても textBox のテキストは変更されません! form2 では、button1 がクリックされたときに、次のように書きました。

string TIDEN = DateTime.Now.ToString("HH:mm:ss tt");
Form1 first = new Form1();
first.STARTTID = TIDEN;

私がやろうとしているのは、form2 のボタン 1 が押されたときに、form1 の textBox3 のテキストを現在の時刻に変更することです。

この投稿が少し乱雑で申し訳ありません。これは私の最初の投稿であり、英語は私の得意な言語ではありません。

4

1 に答える 1

1

問題はForm1、最初のフォームではなく、そのラベルに新しいラベルを作成して更新することです

    Form1 first = new Form1();
    first.STARTTID = TIDEN;

すでにフォームを作成しているため、新しいフォームを作成する必要はありません。できることは、Form をパラメーターとして受け入れるコンストラクターを使用して Form2 を作成するときに、Form1 を Form2 に解析することです。または、Form1 の Form2 にプロパティを作成し、Form2 の作成時にそれを設定します。

フォーム1

Form2 f2 = new Form2(this);
f2.Show();

フォーム2

public partial class Form2 : Form
{
    private Form1 form1;

    public Form2(Form1 form1)
    {
        InitializeComponent();
        this.form1 = form1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        form1.STARTTID = "set by form2";
    }
}
于 2013-05-21T08:29:51.637 に答える