我正在尝试执行以下操作:
我有一个带有textBox的form1和以下方法:
public void ChangeText()
{
textBox.Text = "A";
}
应用程序运行Form1类的形式 - 我们将其称为mainForm。 该主窗体启动另一个进程,创建另一种形式的Form1 - 让我们称之为childForm。
我现在想要点击mainForm上的一个按钮并调用childForm的ChangeText()
方法,以便childForm的textBox受影响。
我一直在寻找一段时间,但我似乎无法使其发挥作用。我不完全确定它甚至是可能的。
API似乎根本没有给我选项,而且WCF正在调用该方法,但无法识别原始表单。
答案 0 :(得分:1)
当然,这是可能的,但由于这两种形式处于不同的过程中,因此您需要一种进程间通信(IPC)机制,如.NET Remoting或Windows Communication Foundation。或者您可以使用this technique。
答案 1 :(得分:-1)
假设你想在途中编辑逻辑
-
如果mainForm实例化childForm,那么它也应该持有对它的引用。
即。 private Form childForm = new Form();
调用mainForm.ChangeText(),它看起来像这样(这会被事件调用,所以参数实际上是事件和发送者参数):
public void ChangeText(EventArgs e, Sender sender)
{
this.childForm.ChangeText(EventArgs e, Sender sender)
}
如果将其公开,您也可以直接访问textBox
即
this.childForm.textBox1.Text = text