C# 从子窗体传回数据时出现问题
我遇到了这个问题:C# 从子窗体传回数据时出现问题,c#,winforms,C#,Winforms,我遇到了这个问题: private void loadStringToolStripMenuItem_Click(object sender, EventArgs e) { StringLoader frmStringLoader = new StringLoader(); string test = frmStringLoader.Result; frmStringLoader.ShowDialog();
private void loadStringToolStripMenuItem_Click(object sender, EventArgs e)
{
StringLoader frmStringLoader = new StringLoader();
string test = frmStringLoader.Result;
frmStringLoader.ShowDialog();
MessageBox.Show(test.ToString());
}
以及StringLoader表单:
public partial class StringLoader : Form
{
private string result;
public StringLoader()
{
InitializeComponent();
}
public string Result
{
get { return result; }
}
private void btnLoadString_Click(object sender, EventArgs e)
{
if ((txtString.Text != string.Empty))
{
result = txtString.Text;
}
this.Close();
}
}
}
这件事给了我一个nullReferenceException(我知道)
怎么处理这件事?我只想打开一个表单,写一个文本,然后单击一个按钮将数据发送回调用者并关闭表单
谢谢。您正在对话框打开前设置结果。尝试反转两行代码,使其如下所示:
frmStringLoader.ShowDialog();
string test = frmStringLoader.Result;
您正在对话框打开前设置结果。尝试反转两行代码,使其如下所示:
frmStringLoader.ShowDialog();
string test = frmStringLoader.Result;
在显示表单之前,您正在获取结果!试一试
private void loadStringToolStripMenuItem_Click(object sender, EventArgs e)
{
StringLoader frmStringLoader = new StringLoader();
frmStringLoader.ShowDialog();
string test = frmStringLoader.Result;
MessageBox.Show(test.ToString());
}
在显示表单之前,您正在获取结果!试一试
private void loadStringToolStripMenuItem_Click(object sender, EventArgs e)
{
StringLoader frmStringLoader = new StringLoader();
frmStringLoader.ShowDialog();
string test = frmStringLoader.Result;
MessageBox.Show(test.ToString());
}
您可能还需要检查frmStringLoader.ShowDialog()的DialogResult,这样,如果用户按“取消”,您就不会读取frmStringLoader.Result字符串。您可能还需要检查frmStringLoader.ShowDialog()的DialogResult,这样,如果用户按cancel,您就不会读取frmStringLoader.Result字符串。我简直不敢相信。我曾经认为,如果我点击子表单中的OK按钮,数据将无法通过。但这件事非常简单。为什么我以前没试过?。谢谢你们(你们两个)的帮助。这让我想到了一件事:为什么绳子能帮上她的忙?当我点击Ok按钮时,它会关闭表单,不是吗?那么为什么要传递数据呢?我不知道我是否正确理解了你的问题。你是在问为什么在显示对话框之前可以访问frmStringLoader.Result吗?我简直不敢相信。我曾经认为,如果我点击子表单中的OK按钮,数据将无法通过。但这件事非常简单。为什么我以前没试过?。谢谢你们(你们两个)的帮助。这让我想到了一件事:为什么绳子能帮上她的忙?当我点击Ok按钮时,它会关闭表单,不是吗?那么为什么要传递数据呢?我不知道我是否正确理解了你的问题。您是否在询问为什么可以在显示对话框之前访问frmStringLoader.Result?