C#为什么这段代码没有正确显示GUI?

时间:2010-05-28 12:29:04

标签: c# winforms user-interface

class Program
{
    static String ChannelName = null;
    static Form1 f;

    static void Main()
    {
        f = new Form1();
        f.Show();
        try
        {
            MY CODE WHICH CALLS INTO ANOTHER CLASS BUT CANNOT PASS THE GUI INSTANCE AS
            IT USES REMOTING
        }
    }
}

我知道这不是最好/最常用的方法,但我需要从具有GUI实例的类向GUI写入数据,所以我打算调用Program.method()和使用函数在程序中写入GUI 。但是当我运行以上我的GUI显示但是使用Windows沙漏?

有人可以给我一个快速修复,这样我仍然可以粗略地显示GUI,让应用程序代码运行然后再写入GUI吗?

3 个答案:

答案 0 :(得分:3)

您需要调用Form.ShowDialog方法。

    static void Main(string[] args)
    {
        f = new Form1();

        try
        {
            f.label1.Text = "Changed Label from Console!";
            f.textBox1.Text = "Changed Textbox from Console!";
        }
        catch (Exception)
        {

            throw;
        }

        f.ShowDialog();
    }

应该让它发挥作用。

答案 1 :(得分:1)

嘿伙计们,我最终做到了!我将我的GUI创建放入一个线程中,并为我的gui类提供了一个methodinvoker,它允许我使用委托从另一个线程写入它。

我的数据类在程序中调用一个方法,该方法将字符串发送到gui和wala中的methodinvoker!

感谢您的想法和帮助!

答案 2 :(得分:0)

您可以将try块移动到Form.Shown事件,以允许您的表单在开始处理之前显示。