在winform里,自定义一个类库,
请问如何重写MessageBox.Show()的方法
我是用C#写

解决方案 »

  1.   

     public class WinMessageBox
        {
            public WinMessageBox()
            { 
            }
            public static void ShowMessagebox(string Context, string Title)
            {
                MessageBoxs.Show(Context, Title, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
    我想重写成类似这样的,
    这样就不用每次调用弹出窗体的时候都要写那个
    MessageBoxButtons,MessageBoxIcon
    只管传进来内容和标题 就好
    但我在类库里这样写会提示我
    错误 MessageBox”并不包含“Show”的定义
    我引入
    using System.Windows.Forms;了
    还是不行,编译不过
      

  2.   


    首先, 你的 MessageBoxs.Show 多了一个 's'
    其次, 建议不用建一个类, 直接写一个静态的方法就可以了
    最后, 建议你不要漏掉 IWin32Window owner 参数, 否则 MessageBox 会变成一个无主的东西,会被其他窗体遮盖
      

  3.   

    其实也无所谓重写不重写 ,如果楼主只是想简单的省略
    MessageBoxButtons,MessageBoxIcon 这些东西,你可以自己写个方法么,
    例如:
    private void ShowMessage(string caption,string text)
    {
       MessageBox.Show(text, caption, 
                                    MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
                                    MessageBoxDefaultButton.Button1);
    }
    这样就好,如果你想随时的改变你的MessageBoxButtons,或者MessageBoxIcon等等,可以重载这个方法
    如果还要返回值的的话也可一重载,就这样,我感觉要比重写什么MessageBox.Show要好的多。。
    只是个人建议
      

  4.   


    //别忘记引用
    using System.Windows.Forms;//封装好的方法
    public static void WinSowMessageBox(string caption,string text)
    {
    MessageBox.Show(text, caption, 
    MessageBoxButtons.OKCancel, MessageBoxIcon.Question, 
    MessageBoxDefaultButton.Button1); 
    }
    没有必要重写,自己在公共类里封装 这样一个静态方法即可。
      

  5.   

     1.引用using System.Windows.Forms; 
       写个类,传递参数就行.
     2.或者自己制作一个类似MessageBox的控件.
      

  6.   

    我就是在自己定义的一个类库里这样写,
    但是提示我MessageBox.Show(...)
    没有此方法