C# 调用错误结果的公共变量

C# 调用错误结果的公共变量,c#,.net,C#,.net,我需要将我的richtextbox(RichTextBoxtTamil)内容传递给变量调用anz 我正在以其他形式将anz变量作为表单加载事件: public partial class ThanglishToTamilGUI : Form { public string anz; public ThanglishToTamilGUI() { InitializeComponent(); } public void btn

我需要将我的richtextbox(RichTextBoxtTamil)内容传递给变量调用anz

我正在以其他形式将anz变量作为表单加载事件:

public partial class ThanglishToTamilGUI : Form
{
    public string anz;

    public ThanglishToTamilGUI()
    {
        InitializeComponent();
    }       

    public void btnConvertToBraille_Click(object sender, EventArgs e)
    {
        anz = richTextBoxTamil.Text.ToString();

        GUI.TamilToBrailleGUI c1 = new GUI.TamilToBrailleGUI();
        c1.Visible = true;            
    }

}
我的问题: 我得到的结果是空值。因为如果我分配了正确调用的值

    private void TamilToBrailleGUI_Load(object sender, EventArgs e)
    {
        ThanglishToTamilGUI tt = new ThanglishToTamilGUI();
        String apper = tt.anz;
        richTextBoxTamil.Text = apper;
    }
这里我的ans值被传递为“Hai”。但我的要求是获取richTextBoxTamil中的任何内容,并将其传递给名为anz的公共变量。这里出了什么问题,请帮帮我

谢谢。

这就是问题所在:

public partial class ThanglishToTamilGUI : Form
{
    public string anz = "Hai";

    public ThanglishToTamilGUI()
    {
        InitializeComponent();
    } ...
您如何期望apper不为null?您正在从新创建的表单中获取变量,该表单从未显示过,也从未调用过
btnConvertToRaille\u单击它

大概在某个地方存在一个
thanglishtamilgui
对象,这就是您要从中获取变量的对象。基本上,一个表单需要知道另一个表单的实例

(我还强烈建议使用属性而不是公共变量,但这是另一回事。您甚至可能根本不需要单独的变量-只需声明一个获取
richTextBoxTamil.Text
的属性即可)

或者,只需将相关字符串传递给新表单的构造函数:

然后,新表单根本不需要了解旧表单——它只需要知道要显示的文本

(您可能希望将其从构造函数中拉出并放入可设置属性中,但基本原理相同:创建表单的代码推送数据,而不是新表单拉送数据。)

这就是问题所在:

public partial class ThanglishToTamilGUI : Form
{
    public string anz = "Hai";

    public ThanglishToTamilGUI()
    {
        InitializeComponent();
    } ...
您如何期望apper
不为null?您正在从新创建的表单中获取变量,该表单从未显示过,也从未调用过
btnConvertToRaille\u单击它

大概在某个地方存在一个
thanglishtamilgui
对象,这就是您要从中获取变量的对象。基本上,一个表单需要知道另一个表单的实例

(我还强烈建议使用属性而不是公共变量,但这是另一回事。您甚至可能根本不需要单独的变量-只需声明一个获取
richTextBoxTamil.Text
的属性即可)

或者,只需将相关字符串传递给新表单的构造函数:

然后,新表单根本不需要了解旧表单——它只需要知道要显示的文本


(您可能希望将其从构造函数中拉出并放入可设置的属性中,但基本原理相同:创建表单的代码推送数据,而不是新表单拉送数据。)

您可以创建公共属性来访问textbox的当前文本值

public void btnConvertToBraille_Click(object sender, EventArgs e)
{
    GUI.TamilToBrailleGUI c1 = new GUI.TamilToBrailleGUI(richTextBoxTamil.Text);
    c1.Visible = true;            
}
现在的操作方式是实例化表单,但不会触发click事件。因此,除了将字段初始化为的内容之外,您不可能得到任何其他内容

Load不是查找用户输入的地方。事件(如单击)是您需要检查属性值的位置:

public string RichTextBoxText 
{
get
{
   return richTextBoxTamil.Text;
}
}

您可以创建公共属性以访问文本框的当前文本值

public void btnConvertToBraille_Click(object sender, EventArgs e)
{
    GUI.TamilToBrailleGUI c1 = new GUI.TamilToBrailleGUI(richTextBoxTamil.Text);
    c1.Visible = true;            
}
现在的操作方式是实例化表单,但不会触发click事件。因此,除了将字段初始化为的内容之外,您不可能得到任何其他内容

Load不是查找用户输入的地方。事件(如单击)是您需要检查属性值的位置:

public string RichTextBoxText 
{
get
{
   return richTextBoxTamil.Text;
}
}

非常感谢。真的很有帮助。:)@是的,你需要创建合适的构造函数来调用。是的,我就是这么做的。再次感谢。:)非常感谢。真的很有帮助。:)@是的,你需要创建合适的构造函数来调用。是的,我就是这么做的。再次感谢。:)