C# 在visual c中显示文本框中的文本#

C# 在visual c中显示文本框中的文本#,c#,winforms,C#,Winforms,我从数组中获取信息,并在表单的文本框中显示结果。该值不会显示在UI中,但它表示已分配该值 try { foreach (string r in Rows) { string[] h = new string[5]; h = r.Split(','); MessageBox.Show(h[0]); // need to show the first record House newhouse = new

我从数组中获取信息,并在表单的文本框中显示结果。该值不会显示在UI中,但它表示已分配该值

try
{
    foreach (string r in Rows)
    {
        string[] h = new string[5];
        h = r.Split(',');
        MessageBox.Show(h[0]);
        // need to show the first record
        House newhouse = new House();

        newhouse.ID = Convert.ToInt32(h[0]);
        newhouse.Address = Convert.ToString(h[1]);
        newhouse.Type = Convert.ToChar(h[2]);
        newhouse.Cost = Convert.ToInt32(h[3]);
        newhouse.Sold = Convert.ToString(h[4]);

        loadedHouses.Add(newhouse);

        ID_Number.Text = Convert.ToString(h[0]);
        address1.Text = Convert.ToString("g");
        type1.Text = Convert.ToString(h[2]);
        cost1.Text = Convert.ToString(h[3]);
        sold1.Text = Convert.ToString(h[4]);
        MessageBox.Show("dewdwedw");
    }
}
catch (Exception qq)
{
    Console.WriteLine("{0} Exception caught.", qq);
}
当您在调试时将鼠标悬停在
ID\u Number
上时,它会显示值应为1,但不会显示在表单中。有人能帮忙吗?

试试这个

    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 100000; i++)
        {
            textBox1.Text = i.ToString();
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Thread t = new Thread(new ThreadStart(loop));
        t.Start();
    }

    private void loop()
    {
        for (int i = 0; i < 100000; i++)
        {
            textBox1.Text = i.ToString();
        }
    }
private void按钮1\u单击(对象发送者,事件参数e)
{
对于(int i=0;i<100000;i++)
{
textBox1.Text=i.ToString();
}
}
你可以猜出这里发生了什么。文本框中的数字将显示从0到999的文本。对吗?错误…在循环结束时,输出将仅为999

我不是专家,我正在努力学习C。但是我知道这个代码会按照我说的方式工作。可能你将不得不在一个单独的线程中完成它。试试这个

    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 100000; i++)
        {
            textBox1.Text = i.ToString();
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Thread t = new Thread(new ThreadStart(loop));
        t.Start();
    }

    private void loop()
    {
        for (int i = 0; i < 100000; i++)
        {
            textBox1.Text = i.ToString();
        }
    }
private void按钮1\u单击(对象发送者,事件参数e)
{
线程t=新线程(新线程开始(循环));
t、 Start();
}
私有void循环()
{
对于(int i=0;i<100000;i++)
{
textBox1.Text=i.ToString();
}
}
这段代码应该像您期望的那样工作

在第一种情况下,textbox也从循环中连续获取值,但无法显示,因为主线程已经很忙。但在第二种情况下,线程与主线程分离

我不确定这是你的问题,但对我来说似乎是这样。在循环中连续地将文本分配给文本框。因此,即使文本框有值,但无法显示。如果您尝试创建一个新线程,现在文本框也会有相应的值,但现在会在文本框中可见。这是一种伪代码,只是为了解释我的观点。如果您正在寻找相同的,它是确定的。否则就用石头砸我的头


希望能有所帮助。

这段代码没有错,所以肯定有别的地方错了。您可以显示更多的代码吗?什么是
h
以及
h[0]
的值是多少?如果您将代码更改为ID\u Number.Text=“Hello”,会发生什么情况;如果您能向我们展示更多的代码,可能会更有帮助,更有效率。这是使用错误表单实例的典型标志。添加以下语句:this.Show();