繁体   English   中英

在C#中创建无模式子窗体

[英]Create modeless child form in C#

我目前正在开发一个桌面应用程序(主窗体),该应用程序上载数据以便执行一些基本计算。

我希望在用户上传文件后(例如“上传已完成”)弹出一个Box。 此Box应具有2个特征:

  1. 它应该是无模式的,不需要输入,它只是一个信息框
  2. 它应该自动消失(基于计时器)。

我已经找到第二点的解决方案,但是我仍然必须创建要弹出的表单。 因为我不希望它具有按钮,所以MessageBox不太适合。

我知道我可以创建如下的无模式表单:

 Public class test
 {
 Form f = new Form();
 f.show()
 }

从那开始,如何插入与messageBox样式非常相似的字符串文本和字符串标题?

谢谢

我认为这可以让您了解如何开始

public class MyDialog: Form
{
    public MyDialog(string prompt, int timeout)
    {
        RichTextBox rtb = new RichTextBox();
        rtb.Dock = DockStyle.Fill;
        rtb.Font = new Font("Times new Roman", 14f, FontStyle.Bold);
        rtb.Text = prompt;
        this.Controls.Add(rtb);

        var _Timer = new System.Windows.Forms.Timer()
        {
            Enabled = true,
            Interval = timeout
        };
        _Timer.Tick += (s, e) => this.Close();
        this.Show();
    }
}

您需要做的就是创建如下所示的表单

var f = new MyDialog("It works", 5000);

首先,您可以创建一个表单,如下所示,它相当于您的消息框。

在此处输入图片说明

然后,您可以像这样更改新的Form2构造函数:

public partial class Form2 : Form
{
    public Form2(string title, string message)
    {
        InitializeComponent();
        this.Text = title;
        label1.Text = message;
    }
}

this.Text是您的标题,然后使用label1.Text设置标签文本。

然后,在启动新表单时,请执行以下操作:

private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2("header","message");
    f2.Show();
}

这就是您将得到的:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM