我有一个应用程序,以一种形式(Form1
)我有很多复选框和文本框,在 Form2
中我只有一个文本框,但我想从 Form1
文本框中放入一些内容并放入 Form2
文本框,就像这样,但在表单之间:
textBox1.Text = "Test: " + textBox1 + "\n" + textBox3;
作为
textBox1
中的 Form2
和 textBox1
中的第二个 textBox3
和 Form1
,但我该怎么做?谢谢。 最佳答案
根据您启动第二个表单的方式,您可以在 Form2 中分配一个引用 Form1 的成员对象,或者如果您使用的是 MDI 接口(interface),则有一个表单集合,您可以从中检索对 Form1 的引用。
例如,您可以在 Form2 类中包含以下代码:
public partial class Form2 : Form
{
public Form1 LaunchOrigin { get; set; }
// and so on
现在,您可以在启动 Form2 时分配 LaunchOrigin 成员。下面是一个例子:
Form2 newForm = new Form2();
newForm.LaunchOrigin = this;
newForm.Show();
您现在可以访问 Form1 及其所有成员。这是一个简单的例子:
private void Form2_Load(object sender, EventArgs e)
{
this.Text = LaunchOrigin.Text;
}
您必须记住,控件被声明为私有(private)的,因此您将无法直接访问它们。您可以在Form1上写一个引用该控件的属性,但这通常是一个坏主意。但是,为了完整起见,可以使用以下代码在Form1上公开按钮:
public partial class Form1 : Form
{
public Button theButton;
public Form1()
{
InitializeComponent();
theButton = button1; // where button1 is what I dragged on
}
// and so on
尽管您所要求的相对容易实现,但它会使您走上一些脆弱的应用程序结构之路。仔细考虑一下您要在表单之间公开什么,也许它应该是一种可以绑定(bind)到两种表单的独特类型,以便一旦更改基础类型,就可以更改两者的表示形式。
关于c# - 将一种形式的控件用于另一种形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1736444/