C # Почему этот код не показывает графический интерфейс должным образом? - PullRequest
1 голос
/ 28 мая 2010
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 из класса, в котором есть экземпляр GU, так что я собирался вызвать Program.method () и используйте функцию для записи в GUI в программе . Однако, когда я запускаю выше, мой графический интерфейс отображается, но с песочными часами Windows?

Может ли кто-нибудь показать мне быстрое исправление, чтобы я все еще мог грубо показать GUI, позволить запускать код приложения и затем записывать в GUI?

Ответы [ 3 ]

3 голосов
/ 28 мая 2010

Вам необходимо вызвать метод 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 голос
/ 28 мая 2010

Эй, ребята, я сделал это в конце концов! Я поместил свое создание GUI в поток и дал моему классу gui methodinvoker, который позволяет мне использовать делегата для записи в него из другого потока.

Мой класс данных вызывает метод в программе, который отправляет строку для записи в methodinvoker в графическом интерфейсе и wala!

Спасибо за ваши идеи и помощь!

0 голосов
/ 28 мая 2010

Вы можете переместить свой блок try в событие Form.Shown , чтобы разрешить отображение формы до ее начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...