我试过这个传递信息:
Form1 frm1 = new Form1();
textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;
这是获取信息的表单的形式加载。但没有文字。我该如何解决? Form2
正在抓取Form1
的文字并显示它。
答案 0 :(得分:11)
使用属性公开文本框的内容:
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
答案 1 :(得分:4)
我在Windows应用程序中找到了将文本值传递给其他文本的简单和逻辑方法。
在第二表格中编写代码: -
Create a Parameter of *Form2* Constructor.
namespace PassingValue
{
public partial class Form2 : Form
{
public Form2(string message)
{
InitializeComponent();
Textbox1.Text= message;
}
}
}
在First Form中编写代码: -
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();
}
}
}
答案 2 :(得分:2)
尝试下面的代码,它的工作对我来说......
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;
}
享受
答案 3 :(得分:1)
**
100%工作
**
取2个表单,Form1和Form2,Form1包含textbox1和Frm1Btn1,Form2包含Frm2Btn1,现在打开form1,点击打开form2
// FORM1 CODING:
private void Frm1Btn1_Click(object sender, EventArgs e)
{
Form2 obj=new Form2();
obj.showDialog();
}
// FORM2 CODING:
private void Frm2Btn1_Click(object sender, EventArgs e)
{
Form1 objj = new Form1();
objj =(Form1) Application.OpenForms["Form1"];
objj.textBox1.Text = "Salil";
objj=null;
}
答案 4 :(得分:0)
如果它是一个网络表单MSDN建议在页面顶部请求文本。
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
然后在page_load
if (PreviousPage != null)
{
TextBox SourceTextBox =
(TextBox) PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
Label1.Text = SourceTextBox.Text;
}
}
答案 5 :(得分:0)
确保将Form1的textBox1.Text属性初始化为您可以看到的实际字符串。我怀疑,因为你正在使用Form1的默认实例,TextBox1.Text属性是String.Empty这是默认值(为什么你没有得到任何可见的文本,它似乎是你是什么预期)。
答案 6 :(得分:0)
表格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;
答案 7 :(得分:0)
您可以做的一件简单的事情是将文本框值存储到变量中,然后使用构造函数将其传递给另一个表单。 E.G
string textboxvalue=textbox1.Text();
form2 win = new form2(textboxvalue);
这里form2是您要发送值的表单,win是该表单的实例。
答案 8 :(得分:0)
在Windows应用程序中,只需转到另一个表单设计器并将该工具声明为public。您可以从任何表单访问该工具。
答案 9 :(得分:0)
这是在结果表格中:
代码:
Form1 frm1 = new Form1();
frm1.Show();
textBox1.Text = ((TextBox)frm1.Controls["textBox1"]).Text;
在第一张表格上:
按钮代码(在表单加载时输入此代码):
this.Close();
答案 10 :(得分:0)
in form1:hotcoffee
传递文本框 private void button15_Click(object sender,EventArgs e)//获取creditcard上的项目
{
this.Hide();
hotcoffepayment p = new otcoffepayment(richTextBox2.Text);//pass form1 textbox
p.Show();
}
in form2:hotcoffepayment
public hotcoffepayment(string strValue)
{
InitializeComponent();
textBox1.Text = strValue;//here mention the form2 textbox name
}
答案 11 :(得分:0)
您必须将textbox的modifer属性设置为“public”才能从其他表单中获取其值
答案 12 :(得分:0)
对我来说,最简单的方法就是这样:
var frm = this.Owner; var ctl = frm.Controls.Find("textboxOnform1", true).FirstOrDefault() as Control; TextBox Txt = (TextBox)ctl; //And then you can use It textboxt1.Text= Txt.Text;
你可以做相反的事情 - 以相同的方式发回文本。
答案 13 :(得分:-1)
表格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