如何重写MessageBox.Show()的方法

张家可 2009-05-31 09:37:11
在winform里,自定义一个类库,
请问如何重写MessageBox.Show()的方法
我是用C#写
...全文
1675 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
H460562952 2011-02-23
  • 打赏
  • 举报
回复
用Windows API
lzc2125 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xxyping 的回复:]
其实也无所谓重写不重写 ,如果楼主只是想简单的省略
MessageBoxButtons,MessageBoxIcon 这些东西,你可以自己写个方法么,
例如:
private void ShowMessage(string caption,string text)
{
  MessageBox.Show(text, caption,
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
                                MessageBoxDefaultButton.Button1);
}
这样就好,如果你想随时的…
[/Quote]

这个很好,平时我也是这样使用
张家可 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhy2003119 的回复:]

//别忘记引用
using System.Windows.Forms;

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


我就是在自己定义的一个类库里这样写,
但是提示我MessageBox.Show(...)
没有此方法
老鼠爱上猫 2009-06-01
  • 打赏
  • 举报
回复

//别忘记引用
using System.Windows.Forms;

//封装好的方法
public static void WinSowMessageBox(string caption,string text)
{
MessageBox.Show(text, caption,
MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
}
没有必要重写,自己在公共类里封装 这样一个静态方法即可。
New_SunShine 2009-06-01
  • 打赏
  • 举报
回复
写一个方法传递参数就可以了,没有必要重写。
SQL77 2009-06-01
  • 打赏
  • 举报
回复
只有这样的吧MessageBox.Show
xxyping 2009-06-01
  • 打赏
  • 举报
回复
其实也无所谓重写不重写 ,如果楼主只是想简单的省略
MessageBoxButtons,MessageBoxIcon 这些东西,你可以自己写个方法么,
例如:
private void ShowMessage(string caption,string text)
{
MessageBox.Show(text, caption,
MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
}
这样就好,如果你想随时的改变你的MessageBoxButtons,或者MessageBoxIcon等等,可以重载这个方法
如果还要返回值的的话也可一重载,就这样,我感觉要比重写什么MessageBox.Show要好的多。。
只是个人建议
CGabriel 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 llxlett 的回复:]
public class WinMessageBox
{
public WinMessageBox()
{
}
public static void ShowMessagebox(string Context, string Title)
{
MessageBoxs.Show(Context, Title, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
我想重写成类似这样的,
这样就不用每次调用弹出窗体的时候都要写那个
MessageBoxButtons,MessageBoxIcon…
[/Quote]

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

CqCoder 2009-06-01
  • 打赏
  • 举报
回复
关注 友情帮顶··
Harvey_He 2009-06-01
  • 打赏
  • 举报
回复
用Windows API
s32702 2009-06-01
  • 打赏
  • 举报
回复
自己封一下就可以了。
ly19850703 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xxyping 的回复:]
其实也无所谓重写不重写 ,如果楼主只是想简单的省略
MessageBoxButtons,MessageBoxIcon 这些东西,你可以自己写个方法么,
例如:
private void ShowMessage(string caption,string text)
{
MessageBox.Show(text, caption,
MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
}
这样就好,如果你想随时的改变你的MessageBoxButtons,或者MessageBoxIcon等等,可以重载这个方法…
[/Quote]
同意
w5dy 2009-06-01
  • 打赏
  • 举报
回复
1.引用using System.Windows.Forms;
写个类,传递参数就行.
2.或者自己制作一个类似MessageBox的控件.
张家可 2009-05-31
  • 打赏
  • 举报
回复
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;了
还是不行,编译不过
CGabriel 2009-05-31
  • 打赏
  • 举报
回复
你想重写成怎么样先?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧