用户
 找回密码
 立即注册

1

主题

4

帖子

289

积分

中级会员

Rank: 3Rank: 3

积分
289
发表于 2016-1-15 14:02:46
如题,希望版主给介绍介绍
分享至 : QQ空间
0 人收藏
使用道具 举报 回复
发表于 2016-1-15 14:34:22
MessageBox.Show共有四个重载方法
一、public void Show(string text)
仅弹出一个带确定按钮的消息框,在界面上点击消息框的按钮后,关闭消息框,而不触发任何事件和操作。
二、public void Show(string text, Smobiler.Core.MessageBoxHandler handler, [object args = null])
这里会有一个MessageBoxHandler的委托参数,这个委托代表在界面上点击消息框的按钮后,关闭消息框,同时会触发MessageBoxHandler这个委托,可以把MessageBoxHandler认为是MessageBox在用户点击消息框按钮后的回调。
三、public void Show(string text, Smobiler.Core.MessageBoxButtons buttons, Smobiler.Core.MessageBoxHandler handler, [object args = null])
这个方法中多了一个叫buttons的,具体可以看一下MessageBoxButtons中的参数,就是支持了多种按钮,比如“是”,“否”,“确认”,“取消”等。
四、public void Show(string text, Smobiler.Core.MessageBoxButtons buttons, Smobiler.Core.MessageBoxDefaultButton defaultButton, Smobiler.Core.MessageBoxHandler handler, [object args = null])
这个方法中又多了一个叫MessageBoxDefaultButton ,这个是默认哪个按钮处于被选中的状态。

每一个方法中都有一个 [object args = null]参数,这个参数只是会把数据传入到MessageBoxHandler委托中,方便如果你在其他类中创建这个委托,可以把界面中的某些参数传入。

重要提示:
Smobiler中的MessageBox.Show和WindowsForm的MessageBox.Show有一个很大的区别,这个区别就是Smobiler中的MessageBox.Show是异步执行的,就是说代码中MessageBox.Show在执行时,会自动执行MessageBox.Show下面的代码,哪怕客户端界面上还没有点击并返回,所以如果想客户端界面上点击提示框的按钮后再执行某一个操作,必须把代码写入MessageBoxHandler的委托实例中。

比如下面的代码,实现在用户点击后再获取当前用户的点击结果:
    MessageBox.Show("点击确定按钮",MessageBoxButtons.YesNo, ((sender1, e1) => { MessageBox.Show("你已经点击了"+e1.Result.ToString()); }));
Smobiler中很多功能都是通过”异步+事件驱动”的方式,比如GPS,CAMERA,VOICERECORDER等等。


使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册