C#为什么这段代码不能正确显示GUI?
我知道这不是最好的/正常的方法,但我需要从一个包含GUI的bo实例的类向GUI写入数据,所以我要调用Program.method()并使用函数在程序中写入GUI。但是,当我运行上面的GUI时,会显示windows沙漏吗C#为什么这段代码不能正确显示GUI?,c#,winforms,user-interface,C#,Winforms,User Interface,我知道这不是最好的/正常的方法,但我需要从一个包含GUI的bo实例的类向GUI写入数据,所以我要调用Program.method()并使用函数在程序中写入GUI。但是,当我运行上面的GUI时,会显示windows沙漏吗 有人能给我一个快速的解决方案,这样我仍然可以粗略地显示GUI,让应用程序代码运行,然后再写入GUI吗 您可以将try块移动到事件,以便在表单开始处理之前显示表单。您可以将try块移动到事件,以便在表单开始处理之前显示表单。您需要调用该方法 应该使它工作。您需要调用该方法 应该会成
有人能给我一个快速的解决方案,这样我仍然可以粗略地显示GUI,让应用程序代码运行,然后再写入GUI吗 您可以将try块移动到事件,以便在表单开始处理之前显示表单。您可以将try块移动到事件,以便在表单开始处理之前显示表单。您需要调用该方法 应该使它工作。您需要调用该方法
应该会成功的。嘿,伙计们,我终于成功了!我将GUI创建放在一个线程中,并给我的GUI类一个methodinvoker,它允许我使用委托从另一个线程写入 我的数据类在程序中调用一个方法,它将字符串发送到gui和wala中的methodinvoker
谢谢你的想法和帮助 嘿,伙计们,我终于做到了!我将GUI创建放在一个线程中,并给我的GUI类一个methodinvoker,它允许我使用委托从另一个线程写入 我的数据类在程序中调用一个方法,它将字符串发送到gui和wala中的methodinvoker
谢谢你的想法和帮助 首先:我假设Windows窗体是由于新的Form1()而产生的;实例化。我错了吗?第二:你想做什么,你的目标是什么?您希望实现什么?在沙漏显示时,点击control+break按钮以打断代码。我想这会突出你的问题所在。我有一个接口类,它接收关于注册表的数据。我想将这些数据写入GUI。问题是我在使用钩子,没有地方可以放置GUI声明,它只能被调用一次,因为每次看到一个动作时,代码的其余部分都会发生。所以我想在注册表监控开始之前声明GUI,然后在注册表数据程序.Form1.ListBox.items.insert(0,String)。。。。。但是我首先在显示GUI时遇到了沙漏问题:我假设Windows窗体是由新的Form1()引起的;实例化。我错了吗?第二:你想做什么,你的目标是什么?您希望实现什么?在沙漏显示时,点击control+break按钮以打断代码。我想这会突出你的问题所在。我有一个接口类,它接收关于注册表的数据。我想将这些数据写入GUI。问题是我在使用钩子,没有地方可以放置GUI声明,它只能被调用一次,因为每次看到一个动作时,代码的其余部分都会发生。所以我想在注册表监控开始之前声明GUI,然后在注册表数据程序.Form1.ListBox.items.insert(0,String)。。。。。但是我在显示GUI时遇到了沙漏问题嘿,好吧,GUI工作得很好(谢谢!!),但是如果GUI现在不执行,它就会显示我的代码,因为GUI就像一个while循环?是的,因为try-catch中的代码只有在关闭模式窗体后才会执行(这是通过调用ShowDialog方法得到的结果)…只需将try子句放在ShowDialog()方法之前。(更新的答案)嘿,好的,GUI工作正常(谢谢!!)但如果GUI现在不执行,它就会显示我的代码,因为GUI就像一个while循环?是的,因为try-catch中的代码只有在关闭模式表单后才会执行(这是通过调用ShowDialog方法得到的)…只需将try子句放在ShowDialog()之前方法。(最新答覆)
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
}
}
}
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();
}