C#中把一个窗体FORMA的Text1box文本传送到另外一个窗体FORM B的label文本. FormA掉调用时不触发Formb 窗口
时间: 2024-10-24 10:15:06 浏览: 32
在C#中,如果你想从一个窗体(FormA)将TextBox控件的内容传递到另一个窗体(FormB),并在不直接显示FormB的情况下操作,你可以使用数据绑定、事件委托或者通过类的静态属性/方法进行通信。这里给出一种通过公共字段的方式:
1. 在FormA中,假设Text1Box是名为txtData的TextBox控件:
```csharp
public partial class FormA : Form
{
public string DataToTransfer { get; set; }
// ... FormA的其他代码 ...
private void btnSend_Click(object sender, EventArgs e)
{
DataToTransfer = txtData.Text;
Hide(); // 隐藏当前窗体,不显示FormB
}
}
```
2. 在FormB中,在加载时检查是否有来自FormA的数据:
```csharp
public partial class FormB : Form
{
private static string ReceivedData;
public FormB()
{
InitializeComponent();
if (ReceivedData != null)
{
Label1.Text = ReceivedData; // 设置Label的文本
// 可能需要在这里处理接收数据的行为
}
}
// ... FormB的其他代码 ...
}
// 在FormA中设置FormB的ReceivedData
public static void SetReceivedData(string data)
{
ReceivedData = data;
Application.Run(new FormB()); // 后台启动FormB,不需要用户交互
}
```
当你在FormA点击发送按钮时,DataToTransfer会包含TextBox的内容,并通过SetReceivedData函数传给FormB。FormA会被隐藏,不会直接显示FormB。
阅读全文