值没有在TextBox中显示

时间:2017-06-04 18:11:44

标签: c# winforms user-interface textbox

在此程序中,当单击Recall按钮(recallBtn_Click())时,它会调用另一个类的方法(计算方向),然后该类应调用showPath()方法。然后,show path方法应该在textBox中显示其输出。但是,即使我可以从调试中看到值被发送到文本框,但值仍未显示。谁能告诉我哪里出错了?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        storeRetSelect.SelectedIndex = 0;
        PrioritySelect.SelectedIndex = 0;

    }

    public void showPath(List<PathFinderNode> mPath)
    {
        var T = new Form1().directionsTextBox;

        foreach (PathFinderNode node in mPath)
        {
            if ((node.X - node.PX) > 0) { T.Text += "Right" + System.Environment.NewLine ; }
            if ((node.X - node.PX) < 0) { T.Text += "Left" + System.Environment.NewLine; }
            if ((node.Y - node.PY) > 0) { T.Text += "UP" + System.Environment.NewLine; }
            if ((node.Y - node.PY) < 0) { T.Text += "Down" + System.Environment.NewLine; }
        }
    }

    private void recallBtn_Click(object sender, EventArgs e)
    {
        var path = new pathPlan();
        string desigString = inputTextBox.Text;
        int[] desig = new int[3];

        for (int i = 0; i < desigString.Length; i++) { desig[i] = (int)char.GetNumericValue(desigString[i]); }
        path.Recall(desig[1], desig[2], (-1) * desig[0]);
    }
}

1 个答案:

答案 0 :(得分:0)

使用此行,您将初始化一个新对象并获取该文本框的引用。

var T = new Form1().directionsTextBox;

但我假设您要使用已经打开的表单的文本框。将该行更改为以下内容以访问当前对象的文本框。

var T = this.directionsTextBox;