-2

Form2.textbox1 の入力を Form1.sti に渡す手助けが必要です Form1 = メイン作業ウィンドウ Form2 = ポップアップ ウィンドウ、パスを入力します。

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }

    public string sti { get; set; }

    private void button1_Click(object sender, EventArgs e)
    {
        textBox1.Text = sti;
        this.Close();
    }
}

public partial class Form1 : Form
{
    int CountR = 1;

    public Form1()
    {
        InitializeComponent();
    }

    public string sti { get; set; }

    public void Form1_Load(object sender, EventArgs e)
    {
        Form2 popup = new Form2();
        popup.ShowDialog();
        popup.Dispose();
    }
   public void button1_Click(object sender, EventArgs e)
    {                
    Label7.Text = sti; 
     }

ただし、常に Null を返します。

ユーザーが IT 管理者のみのパスを混乱させたくないので、この方法で構築しました。

前もって感謝します

4

4 に答える 4

0

Form1作成した への参照を持たない新しい を作成してForm2います

例を変更し、2 つの異なる sti プロパティを作成しました。Form2を閉じる前Form2に、プロパティに sti 値を割り当てる必要があります。Form1

このコードはあなたのために働くはずです。

フォーム1

public partial class Form1 : Form
{
    public string sti { get; set; } 

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Form2 popup = new Form2();
        popup.ShowDialog();
        sti  = popup.sti;
        popup.Close();
        popup.Dispose(); 

    }

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = sti;
    }

}

フォーム2

public partial class Form2 : Form
{
    public string sti { get; set; } 

    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {

        sti = textBox1.Text;
        this.Hide();
    }
}

両方のフォームから参照できる静的クラスを作成して、1 つの sti プロパティのみを処理することもできます。このようなもの:

フォーム1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        myProperties.sti = "Hello";
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Form2 popup = new Form2();
        popup.ShowDialog();
        popup.Dispose(); 

    }

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = myProperties.sti;
    }
}

public static class myProperties
{
    public static string sti { get; set; } 
}

フォーム2

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
        textBox1.Text = myProperties.sti;
    }

    private void button1_Click(object sender, EventArgs e)
    {

        myProperties.sti  = textBox1.Text;
        this.Close();
    }
}
于 2012-08-18T21:16:27.183 に答える
0

試す :

public partial class Form2 : Form
{
    public String sti { get; set; }

    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form3 frm = new Form3();
        frm.ShowDialog();
        sti = frm.sti;

        textBox1.Text = sti;
    }
}

他の形式:

public partial class Form3 : Form
{

    public String sti { get; set; }
    public Form3()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        sti = textBox1.Text;
        this.Close();
    }
}
于 2012-08-18T21:18:36.090 に答える
0

Form2から値を取得するために使用される別のプロパティを作成してみませんかForm1

Form2、これを追加します: ( form1 と同じように)

public string sti { get; set; }

Form1コードでは、次のようになります

public void Form1_Load(object sender, EventArgs e)
{
    Form2 popup = new Form2();
    popup.sti = sti;
}

そしてForm2

private void button1_Click(object sender, EventArgs e)
{
    textBox1.Text = sti;
    this.Close();
}
于 2012-08-18T20:44:58.720 に答える
0

フォーム間でデータを渡したい場合は、良いチュートリアルがあります: http://www.codeproject.com/Articles/17371/Passing-Data-between-Windows-Forms

于 2012-08-18T20:47:22.650 に答える