示例:
public partial class abc1 : Form
{
public string str__subgrp { get; set; }
public string str__type { get; set; }
public string return_str__type { get; set;
public abc1()
{
InitializeComponent();
}
private void savebtn_click(object sender, EventArge e )
{
this.str__subgrp = "ABC";
this.str__type = "123";
this.return_str__type = "This word is unicode";
}
}
public partial class worknow : Form
{
// ... declare variable in class ....
public worknow()
{
InitializeComponent();
}
private void showformbtn_click(object sender, EventArge e )
{
string a,b,c;
using ( var abc1_frm = new abc1())
{
abc1_frm.ShowDialog();
a = abc1_frm.str__subgrp;
b = abc1_frm.str__type;
c = abc1_frm.return_str__type; // This variable = null
}
}
}
在评论行(此变量= null)
为什么变量return_str__type
会返回null
值?
答案 0 :(得分:1)
如果确保在对话框关闭之前执行abc1_frm.return_str__type
,则只能使savebtn_click
的值与null不同。由于您没有准确地告诉我们用户(或您作为测试人员)如何关闭对话框,并且如果您禁用了关闭按钮[X],我可以给出的唯一建议是在该方法中在调试器中设置断点并检查代码是否已执行。
答案 1 :(得分:1)
在return_str__type
函数中发生savebtn_click
属性的赋值。
你为什么期望这个函数调用?
尝试将savebtn
按钮设置为AcceptButton
的{{1}},或者找到如何将abc1
定义为表单的默认事件的方法。
请用你的样式代码制作一些东西,我的眼睛正在流血:)
答案 2 :(得分:0)
我遇到了类似的问题。它与范围有关。尝试将 return_str__type 声明为公共静态类型,看看它是否有效。并不总是最好的做法,但可能只是工作。