0

我创建了一个射击游戏,但我遇到了一个问题。当玩家输掉比赛时,我想向他展示一条信息。我试过MessageBox,但它出现在屏幕中央。我只想要一个在应用程序中心显示“你输了”的框。我在整个表单中都有 PictureBoxes,当我显示 TextBox 时,它看不到(只有部分)。

有任何想法吗?

4

2 回答 2

2

您可以创建MessageForm带有标签和按钮的自定义表单(经典和 win7 屏幕截图):

在此处输入图像描述 在此处输入图像描述

设置是(您可以在设计器中设置它们):

FormBorderStyle = FormBorderStyle.FixedDialog;
ShowIcon = false;
MinimizeBox = false;
MaximizeBox = false;            
StartPosition = FormStartPosition.CenterParent; // important!
btnOK.DialogResult = DialogResult.OK;
lblMessage.Autosize = false;
lblMessage.TextAlign = ContentAlignment.MiddleCenter;
lblMessage.BackColor = SystemColors.ControlLightLight;
lblMessage.Dock = DockStyle.Top;

表格类:

public partial class MessageForm : Form
{
    public MessageForm(string message)
    {
        InitializeComponent();
        lblMessage.Text = message;
    }

    public static DialogResult Show(string message, string title = "")
    {
        var form = new MessageForm(message);
        form.Text = title;
        return form.ShowDialog();
    }
}

用法:

MessageForm.Show("You Lost");
于 2013-07-10T21:52:20.073 回答
1

正如我在评论中所说,您可以使用

textboxName.BringToFront();

将控件放在前面,如果您希望消息框出现在中间,

MessageBox.Show(this, "message");应该可以工作,因为我相信默认情况下消息框以父级为中心

编辑刚刚查了一下(消息框居中),但似乎你可以通过挂钩来居中,但这似乎有点矫枉过正

于 2013-07-10T21:37:36.090 回答