如何从另一种形式设置表单中的文本?

时间:2013-12-29 17:14:08

标签: c# winforms textbox

我正在撰写一份使用复数执行操作的学期论文。应用程序如下所示: enter image description here

如果单击“计算”,将计算操作数,结果将显示在新对话框中。所以我有两个对话框 - 一个主窗口(在图片上)显示读取结果(在图片上)。不幸的是,我无法将结果保存在主对话框中,然后将其写入文本文件。有一段重要的代码: enter image description here

感谢你的想法。

3 个答案:

答案 0 :(得分:1)

您必须使用目标表单上的引用来对其进行写入。 您必须确保使用正确的targetForm参考。您可以创建新的targetForm或使用现有的Dim targetForm As Form = Me.parentForm targetForm.targetTextBox.Text = "text" 。例如,您可以使用对话框的“父”表单并从对话框事件(使用this as MSDN reference)设置主表单文本框的文本:

{{1}}

希望我帮忙!

答案 1 :(得分:1)

formResult中创建一个保留Main form

引用的变量
private MyMainForm _mainForm;

然后创建另一个构造函数,该构造函数将Main表单的引用作为参数:

public formResult(MyMainForm mainform)
{
    this.InitializeComponent();
    this._mainForm = mainform;
    //Now you have access to public property ResultOut
    this.textBoxResult.Text = this._mainForm.ResultOut;
}   

在此之后,您可以使用第二种形式的主表单的所有公共属性和方法(formResult

答案 2 :(得分:1)

MainForm类中,将属性声明为

public class MainForm:Form
{
  public string CalculationResult { get; set; }
  ...
  ...
  //Your code here
  ...
  ...
}

然后在计算方法上将其改为

  if(resultBool!=null)
  {
    CalculationResult = resultBool.ToString());
    formResult dlg=new formResult(CalculationResult);
    dlg.Owner=this
    dlg.StartPosition=FormStartPosition.CenterParent;
    dlg.ShowDialog();
  }
  else
  {
    ...
    ...
    //your code
    ...
    ...
  }

并更改以下行

  sw.WriteLine("Result: ");

  sw.WriteLine("Result: " + CalculationResult);
<{1}}类中的saveData方法中的

。希望这对你有用。快乐的编码