在Windows窗体中立即显示MessageBox?

时间:2015-04-28 21:19:33

标签: c# windows forms winforms

表单打开时是否有任何方法可以立即弹出消息框?我只是想显示一条关于如何在打开时使用表单的简短消息。我试过了

/// \image html gplv3_logo.png
/// \image html gplv3_logo.svg

但它不起作用。

5 个答案:

答案 0 :(得分:3)

在Form_Load期间显示MessageBox对我来说很好。我从字面上复制/粘贴原始帖子中的代码,并且它有效。我在Windows 8.1上使用.NET Framework 4.5。

您确定要调用Load事件处理程序吗?也许它没有正确地连接到Load事件。

答案 1 :(得分:0)

是否有理由使用表单的Load方法?如果没有,你可以在形式的构造函数中。如果希望在表单加载后立即显示它,则应在初始化表单后在构造函数中执行此操作。看起来应该是这样的:

public partial class myForm : Form
{
    public myForm()
    {
        InitializeComponent();

        DialogResult dialogOpen = MessageBox.Show("Use the navigation menu to get started.", "Welcome!", MessageBoxButtons.OK);
    }
}

构造函数(public myForm())和InitializeComponent();应该在创建后由Visual Studio自动添加到表单中。

答案 2 :(得分:0)

我不明白为什么它不会在Form_Load中运行。绝对尝试做其他人已经指出的方法,将其置于表单初始化之下。

但是,鉴于您只是显示了一个消息框,我认为没有任何理由存储结果,所以一个简单的MessageBox.Show(message);应该可以做到这一点。

as @ s.m。从用户体验的角度来看,一旦应用程序启动就会在你的脸上发出通知会非常讨厌,至少如果你每次都有它。就个人而言,我会创建一个布尔设置变量,在第一次显示消息时将其设置为true,并且仅在设置为false时显示它,即第一次显示消息。

private boolean splashShown = Properties.Settings.Default.splashShown;

private void Form_Load(object sender, EventArgs e)
{
    if (!splashShown)
    {
        MessageBox.Show("message");
        myForm.Properties.Settings.Default.splashShown = true;
        myForm.Properties.Settings.Default.Save();
    }
}

并在表单属性中设置splashShown设置。

如果问题是您的Form_Load()方法实际上并未附加到Form.Load()事件,您可以双击设计器中的表单窗口,它会自动创建{{1您的基本方法并将其附加到Form_Load()事件

答案 3 :(得分:0)

我已经使用过它并且工作正常。应用程序启动首先打开消息框。

InitializeComponent();
MessageBox.Show("put your message here");

答案 4 :(得分:0)

Form_Load事件发生在表单真正可见之前。 我用:

static private bool splashShown = false;
    private void Form1_Activated(object sender, System.EventArgs e)
    {
        if (!splashShown)
        {
            MessageBox.Show("message");
            splashShown = true;
        }
    }