情報を渡すためにこれを試しました:
Form1 frm1 = new Form1();
textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;
これは、情報を取得するフォームのフォーム ロードにあります。しかし、テキストはありません。これを修正するにはどうすればよいですか? Form2
のテキストForm1
を取得して表示しています。
プロパティを使用してテキスト ボックスの内容を公開します。
class Form1 {
public string MyValue {
get { return textBox1.Text; }
}
}
次に、Form2 で次のようにします。
var frm1 = new Form1();
frm1.ShowDialog(this); // make sure this instance of Form1 is visible
textBox1.Text = frm1.MyValue;
frm1
常に表示したい場合はfrm1
、 のクラス変数を作成し、たとえばのコンストラクターをForm2
呼び出します。.Show()
Form2
Windowsアプリケーションでテキスト値をあるテキストボックスから別のテキストボックスに渡すための簡単で論理的な方法を見つけました。
2 番目のフォームでコードを書く:-
Create a Parameter of *Form2* Constructor.
namespace PassingValue
{
public partial class Form2 : Form
{
public Form2(string message)
{
InitializeComponent();
Textbox1.Text= message;
}
}
}
最初のフォームでコードを書く:-
Use the Parameter of Second Form in *First Form*:-
namespace PassValue
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
Form2 f2=new Form2(Textbox.Text);
f2.Show();
}
}
}
次のコードを試してください。私にとってはうまくいきます...
public static string sendtext = "";
private void button1_Click(object sender, EventArgs e)
{
sendtext = txt1.Text;
Form2 frm = new Form2();
frm.Show();
}
form2 のフォーム読み込みイベントでこのデータにアクセスします。
private void Form2_Load(object sender, EventArgs e)
{
txt2.Text = Form1.sendtext;
}
楽しみ
**
100% 稼働中
**
Form1 と Form2 の 2 つのフォームを取得します。Form1 には textbox1 と Frm1Btn1 が含まれ、Form2 には Frm2Btn1 が含まれます。ここで form1 を開き、form2 をクリックして開きます。
//FORM1 コーディング:
private void Frm1Btn1_Click(object sender, EventArgs e)
{
Form2 obj=new Form2();
obj.showDialog();
}
//FORM2 コーディング:
private void Frm2Btn1_Click(object sender, EventArgs e)
{
Form1 objj = new Form1();
objj =(Form1) Application.OpenForms["Form1"];
objj.textBox1.Text = "Salil";
objj=null;
}
フォーム1
//Declare a Static variable
public static string txtInput=string.empty;`
//Set textBox Value to this variable on any event
txtInput=textBox1.Text;
フォーム2
// Now Call this variable from the Instance of form 1
string getForm1Value=string.empty;
getForm1Value=Form1.txtinput;
簡単にできることは、テキスト ボックスの値を変数に格納し、コンストラクターを使用して別のフォームに渡すことです。例えば
string textboxvalue=textbox1.Text();
form2 win = new form2(textboxvalue);
ここで、form2 は値を送信するフォームで、win はそのフォームのインスタンスです。
Form1 の textBox1.Text プロパティが、表示可能な実際の文字列に初期化されていることを確認してください。Form1 のデフォルトのインスタンスを使用しているため、TextBox1.Text プロパティはデフォルト値であるString.Emptyであると思われます (そして、期待しているように見えるテキストが表示されない理由) .
これは結果フォームにあります:
コード:
Form1 frm1 = new Form1();
frm1.Show();
textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;
最初のフォーム:
ボタン コード (フォーム ロード時にこのコードを入力):
this.Close();
Windows アプリケーションでは、別のフォーム デザイナーに移動して、そのツールをパブリックとして宣言するだけです。どのフォームからでもそのツールにアクセスできます。
Web フォームの場合、MSDN はテキストを要求するページの上部にこれを提案します。
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
次にこれをpage_loadに
if (PreviousPage != null)
{
TextBox SourceTextBox =
(TextBox) PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
Label1.Text = SourceTextBox.Text;
}
}
フォーム1
class Form1
{
public System.Windows.Forms.TextBox textBox1; // we need to make it public Textbox
private System.Windows.Forms.Button button1;
}
Form2のボタンクリックまたはその他のイベントの使用
フォーム2
private void button1_Click(object sender, EventArgs e)
{
Form1 _form1 = new Form1();
this._form2TextBox.Text = _form1.textBox1.Text;
}
詳細については、MSDNをご覧ください。