none
MessageBox一定是模态的吗? RRS feed

  • 问题

  • MessageBox一定是模态的吗?

    如果在FormLoad里写上MessageBox.Show("Money!");

    用户是不是必有要点击后,窗体才会出现?
    本人现在使用Windows Server 2003, CentOS Linux 5.2, Windows XP, VirtualBox 2.1.4, Visual Studio 2005, Eclipse 3.4, Microsoft.NET Framework 2.0 SP2, C# 2.0, IIS 6.0, Apache 1.3.41, Nginx-0.6.36, SQL Server 2000, MySQL 5.0, FireBird 2.1.2, PHP 5.2.4, Office 2007, OpenOffice 3.0和永中Office2009.
    2009年5月28日 23:28

答案

  • 你好!
         你说的很对,MessageBox是模态的!
         如果在FormLoad里写上MessageBox.Show("Money!");用户必须要点击后,窗体才会出现啊!
         如果不想要这个效果,可以使用一般的非模态对话框来代替MessageBox
    周雪峰
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 0:31
    版主
  • 是的,不过你可以自己做个 from 通过 from.show 来代替 messagebox 来达到你的目的
    知识改变命运,奋斗成就人生!
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 1:58
    版主
  • 是的,有些问题还是可以自己动手的


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 2:45
    版主
  • 你如果这样写:

    private void Form1_Load(object sender, EventArgs e)
    {
             MessageBox.Show("Money!");
             this.TextDateTime.Now.ToString();//这里获取的是用户点掉MessageBox后的时间
    }

    周雪峰
    • 已标记为答案 dvdvip 2009年5月30日 0:15
    2009年5月29日 13:19
    版主

全部回复

  • 你好!
         你说的很对,MessageBox是模态的!
         如果在FormLoad里写上MessageBox.Show("Money!");用户必须要点击后,窗体才会出现啊!
         如果不想要这个效果,可以使用一般的非模态对话框来代替MessageBox
    周雪峰
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 0:31
    版主
  • 是的,不过你可以自己做个 from 通过 from.show 来代替 messagebox 来达到你的目的
    知识改变命运,奋斗成就人生!
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 1:58
    版主
  • 是的,有些问题还是可以自己动手的


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 dvdvip 2009年5月29日 5:58
    2009年5月29日 2:45
    版主
  • 哪里有非模态的对话框?


    C#里有吗?我怎么找不到?

    private void Form1_Load(object sender, EventArgs e)
    {this.Text=@"ABCDEFG.";MessageBox.Show("Money!");}




    private void Form1_Load(object sender, EventArgs e)
    {MessageBox.Show("Money!");this.Text=@"ABCDEFG.";}



    上面这两句是不是一样的?都要执行MessageBox先?


    本人现在使用Windows Server 2003, CentOS Linux 5.2, Windows XP, VirtualBox 2.1.4, Visual Studio 2005, Eclipse 3.4, Microsoft.NET Framework 2.0 SP2, C# 2.0, IIS 6.0, Apache 1.3.41, Nginx-0.7.59, SQL Server 2000, MySQL 5.0, FireBird 2.1.2, PHP 5.2.4, Office 2007, OpenOffice 3.0和永中Office2009.
    2009年5月29日 6:01
  • 自己建个form实现
    http://feiyun0112.cnblogs.com/
    2009年5月29日 6:29
    版主
  • 自己做一个from 做得和 messagebox 那个一样,然后调用 from.show();
    知识改变命运,奋斗成就人生!
    2009年5月29日 6:31
    版主
  • 你自己建立一个Form,然后使用form2.Show()打开窗体就是非模态的,使用form.ShowDialog()打开窗体就是模态的!
    周雪峰
    2009年5月29日 10:14
    版主
  • 这样太麻烦了。

    建立一个Form,消耗多大内存?它里面还有一大堆属性要设置。

    private void Form1_Load(object sender, EventArgs e)
    {this.Text=DateTime.Now.ToString();MessageBox.Show("Money!");}




    private void Form1_Load(object sender, EventArgs e)
    {MessageBox.Show("Money!");this.TextDateTime.Now.ToString();}



    这两个,是不是一样的?是软件启动的时间,还是用户点击后的时间?

    本人现在使用Windows Server 2003, CentOS Linux 5.2, Windows XP, VirtualBox 2.1.4, Visual Studio 2005, Eclipse 3.4, Microsoft.NET Framework 2.0 SP2, C# 2.0, IIS 6.0, Apache 1.3.41, Nginx-0.7.59, SQL Server 2000, MySQL 5.0, FireBird 2.1.2, PHP 5.2.4, Office 2007, OpenOffice 3.0和永中Office2009.
    2009年5月29日 12:51
  • 你如果这样写:

    private void Form1_Load(object sender, EventArgs e)
    {
             MessageBox.Show("Money!");
             this.TextDateTime.Now.ToString();//这里获取的是用户点掉MessageBox后的时间
    }

    周雪峰
    • 已标记为答案 dvdvip 2009年5月30日 0:15
    2009年5月29日 13:19
    版主