在C#中创建无模式子表单

时间:2018-06-13 21:53:04

标签: c#

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

我想在用户上传文件后弹出一个Box(例如“上传已完成”)。这个盒子应该有两个特点:

  1. 它应该是无模式的,不需要输入,它只是一个 信息框
  2. 它应该自动消失(基于计时器)。
  3. 我已经找到了第二点的解决方案,但是我仍然需要创建我想要弹出的表单。因为我不希望它有按钮,所以MessageBox不太适合。

    我知道我可以创建一个无模式表单,如下所示:

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

    从那开始,如何插入字符串文本和字符串标题,类似于messageBox样式?

    感谢

2 个答案:

答案 0 :(得分:3)

我认为这可以让你知道如何开始

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);

答案 1 :(得分:2)

首先,您可以创建一个类似于以下内容的表单,它将与您的消息框等效。

enter image description here

然后你可以像这样更改新的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();
}

这就是你得到的:

enter image description here