首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Winapp: TextBox被PictureBox隐藏

C# Winapp: TextBox被PictureBox隐藏
EN

Stack Overflow用户
提问于 2013-07-11 05:23:11
回答 2查看 938关注 0票数 0

我创造了一个射击游戏,但我有一个问题的结束。当球员输了的时候,我想向他展示一个信息。我试过MessageBox,但它出现在屏幕的中央。我只想要一个在应用程序中心写着“你输了”的方框。我的表单上到处都是PictureBoxes,当我显示TextBox时,它是看不见的(只有一部分)。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-11 05:37:36

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

代码语言:javascript
复制
textboxName.BringToFront();

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

MessageBox.Show(this, "message");应该可以正常工作,因为我相信messageboxes在默认情况下会以父级为中心显示

编辑刚刚查了一下(MessageBox居中),但似乎你可以通过钩子将一个居中,但这似乎有点过分了

票数 1
EN

Stack Overflow用户

发布于 2013-07-11 05:52:20

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

设置为(可以在designer中设置):

代码语言:javascript
复制
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;

Form类:

代码语言:javascript
复制
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();
    }
}

用法:

代码语言:javascript
复制
MessageForm.Show("You Lost");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17581133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档