输入相应的文本并按回车键后,我希望Form1中的txtbA文本显示在表单2的txtbB中。
我已经编写了关键事件代码,但我似乎无法弄清楚其余部分。
Visual Basic似乎更简单,我是C#的新手。
这是使用WinForms。
我真的只熟悉visual basic的处理方式:
txtbA.text = My.Forms.Form2.txbB.text
感谢您提供任何帮助!
答案 0 :(得分:0)
最简单而不是很优雅的方法就是这样:
以第二种形式创建一个属性,该属性可以保存文本框并在Form2中属性的TextChange事件中设置Text属性
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public TextBox TextBoxWithSameText { get; set; }
private void textBox2_TextChanged(object sender, EventArgs e)
{
if (TextBoxWithSameText != null)
TextBoxWithSameText.Text = textBox2.Text;
}
}
现在你要做的就是在创建第二个表单(Form2)时将属性设置为Form1.textbox1:
Form2 form = new Form2();
form.TextBoxWithSameText = textbox1;
答案 1 :(得分:0)
为了在两个Forms类之间交换字符串,您可以使用第三个类。一旦添加到项目中,您需要在Form1和Form2中实例化这个新的Class1:
Class1 class = new Class1;
确保Class1有一个构造函数。现在,您可以使用get和set属性在Class1中创建属性:
public string TextA
{
get
{
return textA;
}
set
{
textA = value;
}
}
然后,您可以从已实例化Class1的任何其他类调用这些属性,如下所示:
class.TextA = txtbA.Text;
要在其他文本框中显示文本,您需要一个事件来触发更改txtbB.Text值。您可以使用txtbA.ValueChanged事件或具有Click事件的按钮。您应该弄清楚哪个事件最适合您的项目。
我希望这有帮助!祝你好运。
答案 2 :(得分:0)
您可以使用静态变量
在Form1中
public static string txtbAtext
{
get { return txtbAtext ; }
set {txtbAtext = value; }
}
OnTextChanged事件
txtAtext = txtA.Text;
在Form2中
Form1 f1 = new Form1();
txtbB.Text = Form1.txtAText;
答案 3 :(得分:0)
根据您的评论:
右键,Form1将在按Enter键时打开Form2的实例 键。谢谢!
您可以设置Form2以通过其构造函数接收TextBox的初始值:
public partial class Form2 : Form
{
public Form2(string InitialValue)
{
InitializeComponent();
this.txtbB.Text = InitialValue;
}
}
然后在Form1中你会做类似的事情:
Form2 f2 = new Form2(this.txtbA.Text);
f2.Show();