求C#的模式对话框的程序代码

[复制链接]
查看11 | 回复1 | 2008-7-27 11:02:26 | 显示全部楼层 |阅读模式
以前用vc编程时,在模式对话框(如CMyDlg : CDialog)里的OnOk函数里面,如果在调用基类的OnOk前返回,则对话框会继续显示。但在C#中如何实现呢?
定义了一个类MyForm : Form,调用ShowDialog创建了模式对话框,里面有一个文本框,有ok,cancel两个按钮,在按ok时要检查文本框内容的有效性,如果元效,则要求重新输入,应该怎么实现?
不是很明白,两个按钮的属性我修改过了的,modifier属性好像用不着吧?看看我这样设计有什么问题?(Form2里面有一个名为tbName的TextBox控件)
Form2 : Form{... ...

private void btnOk_Click(object sender, EventArgs e) {

if (tbName.Text == "") {

MessageBox.Show("Text Is Null!");

return;
}

... ... //tbName的处理

return;
}}
void Fun(){
Form2 myForm = new Form2();

if (DialogResult.OK == myForm.ShowDialog)
{ ... ...}}
当tbName有内容时,按OK按钮时正常,但按没有内容时就退出了。我的要求是在tbName为空时myForm继续显示,等待输入。以前在VC中,可以这样实现:
CMyDlg : CDialog{

... ...

void OnOk(); }
void CMyDlg::OnOk() {

if (tbName.IsEmpty())
{

MessageBox("Text Is Null!");

return;
}

... ...//tbName的处理

CDialog::OnOk();}
void Fun() {

CMyDlg dlg;

if (IDOK == dlg.DoModel())
{
... ...
}}
现在明白了吗?我比较急啊,非常感谢你的帮助。

回复

使用道具 举报

千问 | 2008-7-27 11:02:26 | 显示全部楼层
你问的我有点迷糊.. 应该是把你有OK 和CANCEL 的俩按扭的DialogResult属性改了一个改成OK 一个改成CANCEL 在把文本框的Modifiers属性改为public 在主面版: Form2 f = new Form2(); DialogResult dr = f.ShowDialog(); if (dr == DialogResult.OK) { //你要判断的文本内容 //f.文本框名.text 如果前面改了文本框属性可以在这里得到文本框的内容 } else { }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行