Winforms Windows窗体问题

Winforms Windows窗体问题,winforms,visual-studio,c++-cli,Winforms,Visual Studio,C++ Cli,当我使用表单X创建应用程序时,我使用:X->Show()应用程序立即终止。所以我使用X->ShowDialog()方法。现在UI停止执行该行之后的任何内容。消息框只有在我关闭表单X后才会显示,更新和文本框更改不会导致任何结果。。。???如何解决这个问题?我只想通过用户交互显示一个窗体并更改其中的一些内容,用户应该关闭它(而不是程序)…当我使用Windows窗体为Windows编程Windows程序时,这难道不是世界上最简单的事情吗?哈哈 int main(array<System::Str

当我使用表单X创建应用程序时,我使用:
X->Show()应用程序立即终止。所以我使用
X->ShowDialog()方法。现在UI停止执行该行之后的任何内容。消息框只有在我关闭表单X后才会显示,更新和文本框更改不会导致任何结果。。。???如何解决这个问题?我只想通过用户交互显示一个窗体并更改其中的一些内容,用户应该关闭它(而不是程序)…当我使用Windows窗体为Windows编程Windows程序时,这难道不是世界上最简单的事情吗?哈哈

int main(array<System::String ^> ^args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);

    Form1^ X = gcnew Form1();

    X->ShowDialog();
    MessageBox::Show("test", "Warning", MessageBoxButtons::OK);
    // message box not shown, only after closing the form...
    return 0;
}
int main(数组^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Form1^X=gcnew Form1();
X->ShowDialog();
MessageBox::Show(“测试”、“警告”,MessageBox按钮::OK);
//消息框未显示,仅在关闭表单后显示。。。
返回0;
}

现在不确定c++-cli,但在c#中,主窗体以以下方式启动和显示:

static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new Form1());
}

所以我在这里可能是错的,但是您的
应用程序在哪里。运行

现在不确定c++-cli,但在c#中,主窗体以以下方式启动和显示:

static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new Form1());
}

所以我在这里可能是错的,但是你的
应用程序在哪里。运行

你试图做的是不合逻辑的。您可以使用ShowDialog()使程序一直运行到窗体关闭,也可以继续运行程序并立即退出。您希望您的程序在哪里暂停?你预计什么时候关门

要在屏幕上同时显示这两个选项,最简单的“解决方案”是颠倒顺序:

MessageBox::Show("test", "Warning", MessageBoxButtons::OK);
X->ShowDialog();

然后你们会在屏幕上看到这两个。否则,从表单中运行MessageBox(在构造函数中,OnLoad,无论何处)

你想做的是不合逻辑的。您可以使用ShowDialog()使程序一直运行到窗体关闭,也可以继续运行程序并立即退出。您希望您的程序在哪里暂停?你预计什么时候关门

要在屏幕上同时显示这两个选项,最简单的“解决方案”是颠倒顺序:

MessageBox::Show("test", "Warning", MessageBoxButtons::OK);
X->ShowDialog();

然后你们会在屏幕上看到这两个。否则,从表单中运行MessageBox(在构造函数中,OnLoad,无论何处)

X->Show()对于名为X的表单类是无效语法。复制此问题的Post代码。推送…地球上70亿了解Windows的人,没有人能回答简单的问题。而且我自己也不能这么做……否则我不会要求Lol下定决心,您是希望
main
继续(使用
MessageBox
然后退出程序),还是希望程序一直运行到表单退出?不能两者都有。X->Show()对于名为X的表单类语法无效。复制此问题的Post代码。推送…地球上70亿熟悉Windows的人,没有人能回答简单的问题。而且我自己也不能这么做……否则我不会要求Lol下定决心,您是希望
main
继续(使用
MessageBox
然后退出程序),还是希望程序一直运行到表单退出?不能两者都有。正确,需要一个消息循环,
Application::Run
是WinForms的标准消息循环。使用这个消息循环,我得到了相同的结果。在我关闭表单之前,我的消息框不会显示。我不想关上它。我想查看表单上的消息框。@hmm:这里显示的最新代码没有使用标准消息循环。正确,需要一个消息循环,
Application::Run
是WinForms标准消息循环。使用此消息循环,我得到了相同的结果。在我关闭表单之前,我的消息框不会显示。我不想关上它。我想查看表单上方的消息框。@hmm:此处显示的最新代码不使用标准消息循环。