DialogResult取消的问题

likegod 2008-06-12 09:21:45
在一个自定义控件中,有一个BtnSave按钮,其DialogResult属性为DialogResult.OK

现在在点击该BtnSave的时候,发生一个错误,希望取消该DialogResult属性。

请问该怎么做?谢谢。
...全文
291 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
soonssa 2008-06-14
  • 打赏
  • 举报
回复
我一般是这么做,把确定按钮的DialogResult属性设为NONE,如果流程正确,再设置窗体的this.DialogResult = DialogResult.OK,如果出错了,窗体不关闭
SuperTyro 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 likegod 的回复:]
引用 4 楼 zhzuo 的回复:
设置Form.DialogResult = DialogResult.None;
这样窗体就不会关闭了。


老大,不是Form,是自定义控件。自定义控件没有DialogResult属性。
[/Quote]

如果说你的是 自定义控件的话 也不难 给一个属性变量 来控制状态不就好了吗?

我是小菜鸟! 说的不好清见谅, 希望能够帮到你!
duanzhi1984 2008-06-13
  • 打赏
  • 举报
回复
设定为CANCEL
xhustudent 2008-06-13
  • 打赏
  • 举报
回复
将按钮的DialogResult属性设为NONE试试
likegod 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhzuo 的回复:]
设置Form.DialogResult = DialogResult.None;
这样窗体就不会关闭了。
[/Quote]

老大,不是Form,是自定义控件。自定义控件没有DialogResult属性。
足球中国 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhzuo 的回复:]
设置Form.DialogResult = DialogResult.None;
这样窗体就不会关闭了。
[/Quote]
marvelstack 2008-06-12
  • 打赏
  • 举报
回复
设置Form.DialogResult = DialogResult.None;
这样窗体就不会关闭了。
lawbc 2008-06-12
  • 打赏
  • 举报
回复
代码贴出来看看吧
你是不是对DialogResult有赋值
likegod 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lya121 的回复:]
说详细点。
[/Quote]

...

就是如何取消一个自定义控件的Button的DialogResult?
lya121 2008-06-12
  • 打赏
  • 举报
回复
说详细点。
Private Sub AxWindowsMediaPlayer1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Public Class Form1 Private Sub 文件ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub MenuItem15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditCopy.Click rtBook.Copy() End Sub Private Sub MenuItem16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditPaste.Click rtBook.Paste() '粘贴操作 End Sub Private Sub rtBook_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtBook.TextChanged fsave = False '控件中的内容发生变化时,该标志为False End Sub Dim fsave As Boolean Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '为全局变量赋值 '对保存文件对话框赋初值 SaveFileDialog1.FileName = "" SaveFileDialog1.DefaultExt = "txt" SaveFileDialog1.Filter = "Text File(*.txt)|*.txt|All files(*.*)|*.*" SaveFileDialog1.Title = "保存" '对打开文件对话框赋初值 OpenFileDialog1.FileName = "" OpenFileDialog1.DefaultExt = "txt" OpenFileDialog1.Filter = "Text File(*.txt)|*.txt|All files(*.*)|*.*" OpenFileDialog1.Title = "打开" End Sub Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileNew.Click Dim num1 As Integer '如果文本已被保存,则清空rtBook内容,重置变量新建文本 If fsave Then rtBook.Clear() SaveFileDialog1.FileName = "" '文件如果还没有保存,则询问用户如何处理 Else num1 = MsgBox("文件的内容已被改变。想保存文件吗?", vbYesNoCancel + 48, "记事本") Select Case num1 '用户选择保存,而且该文件从未保存过,则执行保存文件的操作 Case 6 If SaveFileDialog1.FileName = "" Then If SaveFileDialog1.ShowDialog Then rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If '如果该文件已存在,则弹出对话框,要求用户回答后再保存 End If '清空RTbook的内容,重置变量新建文本 fsave = True rtBook.Clear() SaveFileDialog1.FileName = "" Case 7 '如果用户选择不保存,则立即清空RTbook的内容,新建文本 rtBook.Clear() SaveFileDialog1.FileName = "" fsave = True Case Else '用户选择取消操作,则什么也不做,取消这次的新建操作 End Select End If End Sub Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileOpen.Click Dim num1 As Integer '如果文件内容还未保存,则弹出对话框,询问用户如何处理 If Not fsave Then num1 = MsgBox("文件的内容已被改变。想要保存文件吗?", vbYesNoCancel + 48, "记事本") Select Case num1 Case 6 '用户选择保存操作,而且该文件从未保存过,则输入文件名后进行保存 If SaveFileDialog1.FileName = "" Then If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If Else '若该文件已存在,则弹出对话框,用户选择保存后,直接保存 rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If '弹出【打开】对话框,执行打开文件的操作 fsave = True If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If Case 7 '用户选择不保存文件,则直接打开文本文件 If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText) fsave = True End If Case Else '用户选择了取消操作 End Select Else '文本已被保存,直接打开文件进行操作 If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If fsave = True End If End Sub Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileSave.Click If SaveFileDialog1.FileName = "" Then '如果文件从未保存过,则弹出对话框,输入文件名后,直接保存 If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If Else '若该文件以保存过,则弹出对话框后,用户选择保存后,直接保存到原文件中 rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) End If fsave = True End Sub Private Sub MenuItem9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileSaveAs.Click '现将保存对话框的标题改为“另存为” SaveFileDialog1.Title = "另存为" If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText) fsave = True End If '文件保存完成后,对话框标题再改为“另存” SaveFileDialog1.Title = "保存" End Sub Private Sub MenuItem11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExit.Click Close() End Sub Private Sub MenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditUndo.Click rtBook.Undo() '用户撤消操作 End Sub Private Sub MenuItem14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditCut.Click rtBook.Cut() '剪切操作 End Sub Private Sub MenuItem19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditSelectAll.Click rtBook.SelectAll() '全选操作 End Sub Private Sub MenuItem17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditDelete.Click rtBook.Cut() End Sub Private Sub MenuItem20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFont.Click If FontDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.Font = FontDialog1.Font '用户选择字体 End If End Sub Private Sub MenuItem21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBackcolor.Click If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.ForeColor = ColorDialog1.Color '选择文本的颜色 End If End Sub Private Sub MenuItem22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuForeColor.Click If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then rtBook.BackColor = ColorDialog1.Color '选择文本框的背景颜色 End If End Sub Private Sub MenuItem23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuHelpAbout.Click Dim 关于记事本 As Integer 关于记事本 = MsgBox("我的记事本 版本:1.0 版权所有(李振,吕红飞) 2004 http://www.hbsi.com.cn") End Sub
((IDisposable)new A()).Dispose(); /// /// 利用传进来的sql语句查新数据库 /// /// sql语句 /// public string QuerySingle(string sql) { string single = null; using (OleDbConnection connection = new OleDbConnection(str)) { using (OleDbCommand command = new OleDbCommand(sql, connection)) { try { connection.Open(); object obj = command.ExecuteScalar(); if (obj != null) { single = command.ExecuteScalar().ToString(); } } catch { } } } return single; } /// /// 返回查询到的行数 /// /// /// public int Execute(string sql) { int result = 0; using (OleDbConnection connection = new OleDbConnection(str)) { using (OleDbCommand command = new OleDbCommand(sql,connection)) { try { connection.Open(); result = command.ExecuteNonQuery(); } catch { } } } return result; } //读记事本 FileStream fs = File.OpenRead(@"C:\Users\Administrator\Desktop\1.txt"); StreamReader sr = new StreamReader(fs, Encoding.Default); string s = sr.ReadLine(); string upStr = File.ReadAllText(@"C:\Users\Administrator\Desktop\1.txt", Encoding.Default); MessageBox.Show(upStr); sr.Close(); fs.Close(); //写记事本 FileStream fs = File.Create(@"C:\Users\Administrator\Desktop\1.txt"); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("你的名字"); sw.Close(); fs.Close(); //messageBox控件 确定和取消 DialogResult dr=MessageBox.Show("确认删除吗?", "提示", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) { //用户选择确认的操作 MessageBox.Show("您选择的是【确认】"); } else if (dr == DialogResult.Cancel) { //用户选择取消的操作 MessageBox.Show("您选择的是【取消】"); } DialogResult result=MessageBox.Show("确定重新登录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (result == DialogResult.Yes) { //确定编码 }else if(result == DialogResult.No) { //取消编码 } 首先,ArrayList集合和List都是非静态类,使用时都必须先实列化。 ArrayList类似一个数组,但比数组优越的是它的长度大小可变,并且可以存放不同类型的变量,包括值类型和引用类型。 常用方法如下: 1、Add():方法用于添加一个元素到当前列表的末尾 2、AddRange():方法用于添加一批元素(数组或者集合)到列表的末尾 3、Remove():方法用于删除一个元素,通过元素本身的引用来删除,填什么删什么 4、RemoveAt():方法用于删除一个元素,通过索引值来删除 5、RemoveRange():用于删除一批元素,通过指定开始的索引和删除的数量来删除 6、Insert(int index,value):用于添加一个元素到指定位置,列表后面的元素依次往后移 7、InsertRange(int index,values):用于从指定位置开始添加一批元素,列表后面的元素依次往后移动 8、Contains():用于查看集合中是否包含所给元素 VS2017专业版和企业版激活密钥 需要的请自取~ Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH 交通银行:622262 1210005830359 开户行:虹桥支行 开户人:王彬 邮寄地址:北京市大兴区西红门镇五连环工业园区鼎业路11号利亚德电视剧技术有限公司 收件人:王彬 电话:15022681976 select 单号 ,收入 = case when 收入>0 then 收入 else 0 end ,支出 = case when 收入>0 then 0 else 收入* -1 end from test select teamName,胜=sum( case when 胜利 end ),负 from TeamScore group by teamName select teamName,第1赛季得分 = case when seasonName = '第1赛季得分' then Score end ,第2赛季得分=case when seasonName = '第2赛季得分' then Score end ,第3赛季得分=case when seasonName = '第3赛季得分' then Score end from NBAScore group by teamName select studentld,语文=case when studentld = 001 then (sel ) end ,数学,英语 from table group by studentld select 商品编号,商品名称 ,王大销售数量=sum(case when 销售员 = 王大 then 销售数量 end) ,刘七销售数量=sum(case when 销售员 = 刘七 then 销售数量 end) ,张三销售数量=sum(case when 销售员 = 张三 then 销售数量 end) ,李四销售数量=sum(case when 销售员 = 张三 then 销售数量 end) ,张武销售数量=sum(case when 销售员 = 张三 then 销售数量 end) from MyOrderes group by 商品名称 -------分页 select top 7 * from table where ID not in (select top (7*(5-1)) from table order by ID asc) order by ID select TSName,TsAdderss from Tblstudent where tSid not in (select tSld from TbScroe) select t1.EmployeeID 员工编号,t1.FirstName 员工姓名,t2.FirstName 上司姓名 from Employee as t1 inner join Employee as t2 on t1.EmployeeID = t2.ReportsTo --------创建视图 create View 视图名称 as --要执行的sql语句 select TSName,TsAdderss from Tblstudent where tSid not in (select tSld from TbScroe) --执行视图 select * from 视图名称 --set和select的区别 大部分情况用set就可以,set不能将返回多个值获取到,相对严禁 select可以将获取返回的多个结果的最后一条,相对灵活 --事务 begin transaction //开启一个事务 declare @sum int = 0 //创建一个变量,记录sql语句报错次数 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 if@sum<> 0 //如果不为0,说明有SQL语句执行错误 begin rollback //将事务回滚到执行之前 end else begin commit //SQL语句执行没有错误就提交事务 end --存储过程(无参无返回值) create procedure user //创建一个存储过程 as begin print 'Hellow world' end exec user //执行一个存储过程 --存储过程(带参数的) create procedure user //创建一个存储过程 @NAME nvarchar(50) //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 as begin select @NAME from table end exec user @NAME=王彬,@AGE=29 create procedure user @NAME nvarchar(20) @AGE int as begin select * from table where NAME = @NAME and AGE = @AGE end exec user @NAME = '男',@AGE = 15 select 单号 ,收入 = case when 收入>0 then 收入 else 0 end ,支出 = case when 收入>0 then 0 else 收入* -1 end from test select teamName,胜=sum( case when 胜利 end ),负 from TeamScore group by teamName select teamName,第1赛季得分 = case when seasonName = '第1赛季得分' then Score end ,第2赛季得分=case when seasonName = '第2赛季得分' then Score end ,第3赛季得分=case when seasonName = '第3赛季得分' then Score end from NBAScore group by teamName select studentld,语文=case when studentld = 001 then (sel ) end ,数学,英语 from table group by studentld select 商品编号,商品名称 ,王大销售数量=sum(case when 销售员 = 王大 then 销售数量 end) ,刘七销售数量=sum(case when 销售员 = 刘七 then 销售数量 end) ,张三销售数量=sum(case when 销售员 = 张三 then 销售数量 end) ,李四销售数量=sum(case when 销售员 = 张三 then 销售数量 end) ,张武销售数量=sum(case when 销售员 = 张三 then 销售数量 end) from MyOrderes group by 商品名称 --分页 select top 7 * from table where ID not in (select top (7*(5-1)) from table order by ID asc) order by ID select TSName,TsAdderss from Tblstudent where tSid not in (select tSld from TbScroe) select t1.EmployeeID 员工编号,t1.FirstName 员工姓名,t2.FirstName 上司姓名 from Employee as t1 inner join Employee as t2 on t1.EmployeeID = t2.ReportsTo --创建视图 create View 视图名称 as --要执行的sql语句 select TSName,TsAdderss from Tblstudent where tSid not in (select tSld from TbScroe) --执行视图 select * from 视图名称 --set和select的区别 大部分情况用set就可以,set不能将返回多个值获取到,相对严禁 select可以将获取返回的多个结果的最后一条,相对灵活 --事务 begin transaction //开启一个事务 declare @sum int = 0 //创建一个变量,记录sql语句报错次数 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 sql语句.................... set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 if@sum<> 0 //如果不为0,说明有SQL语句执行错误 begin rollback //将事务回滚到执行之前 end else begin commit //SQL语句执行没有错误就提交事务 end --存储过程(无参无返回值) create procedure user //创建一个存储过程 as begin print 'Hellow world' end exec user //执行一个存储过程 --存储过程(带参数的) go //表示批处理的第一句话 create procedure user //创建一个存储过程 @NAME nvarchar(50) //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 .................. //创建变量,数据类型及初始值 as begin select @NAME from table end create procedure user @NAME nvarchar(20) @AGE int as begin select * from table where NAME = @NAME and AGE = @AGE end exec user @NAME = '男',@AGE = 15 ---分页存储过程 go create procedure fenye @countpize int //总页数 @everpize int //每页多少条数据 @sumpize //总页数 @pazeindex //当前页数 begin select * from table where betweem ((@pazeindex-1)*@everpize)+1 and @pazeindex*@everpize set @sumpize =(select cuont(*) from table) //总条数 set @countpize = @sumpize/@everpize //总页数 end ((IDisposable)new A()).Dispose(); /// /// 利用传进来的sql语句查新数据库 /// /// sql语句 /// public string QuerySingle(string sql) { string single = null; using (OleDbConnection connection = new OleDbConnection(str)) { using (OleDbCommand command = new OleDbCommand(sql, connection)) { try { connection.Open(); object obj = command.ExecuteScalar(); if (obj != null) { single = command.ExecuteScalar().ToString(); } } catch { } } } return single; } /// /// 返回查询到的行数 /// /// /// public int Execute(string sql) { int result = 0; using (OleDbConnection connection = new OleDbConnection(str)) { using (OleDbCommand command = new OleDbCommand(sql,connection)) { try { connection.Open(); result = command.ExecuteNonQuery(); } catch { } } } return result; } //读记事本 FileStream fs = File.OpenRead(@"C:\Users\Administrator\Desktop\1.txt"); StreamReader sr = new StreamReader(fs, Encoding.Default); string s = sr.ReadLine(); string upStr = File.ReadAllText(@"C:\Users\Administrator\Desktop\1.txt", Encoding.Default); MessageBox.Show(upStr); sr.Close(); fs.Close(); //写记事本 FileStream fs = File.Create(@"C:\Users\Administrator\Desktop\1.txt"); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("你的名字"); sw.Close(); fs.Close(); //messageBox控件 确定和取消 DialogResult dr=MessageBox.Show("确认删除吗?", "提示", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) { //用户选择确认的操作 MessageBox.Show("您选择的是【确认】"); } else if (dr == DialogResult.Cancel) { //用户选择取消的操作 MessageBox.Show("您选择的是【取消】"); } DialogResult result=MessageBox.Show("确定重新登录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (result == DialogResult.Yes) { //确定编码 }else if(result == DialogResult.No) { //取消编码 } 首先,ArrayList集合和List都是非静态类,使用时都必须先实列化。 ArrayList类似一个数组,但比数组优越的是它的长度大小可变,并且可以存放不同类型的变量,包括值类型和引用类型。 常用方法如下: 1、Add():方法用于添加一个元素到当前列表的末尾 2、AddRange():方法用于添加一批元素(数组或者集合)到列表的末尾 3、Remove():方法用于删除一个元素,通过元素本身的引用来删除,填什么删什么 4、RemoveAt():方法用于删除一个元素,通过索引值来删除 5、RemoveRange():用于删除一批元素,通过指定开始的索引和删除的数量来删除 6、Insert(int index,value):用于添加一个元素到指定位置,列表后面的元素依次往后移 7、InsertRange(int index,values):用于从指定位置开始添加一批元素,列表后面的元素依次往后移动 8、Contains():用于查看集合中是否包含所给元素 https://pan.baidu.com/s/1LCfl5sPCb-HfQmL0Chjvmg#list/path=/ syll VS2017专业版和企业版激活密钥 需要的请自取~ Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH 交通银行:622262 1210005830359 开户行:虹桥支行 开户人:王彬 邮寄地址:北京市大兴区西红门镇五连环工业园区鼎业路11号利亚德电视剧技术有限公司 收件人:王彬 电话:15022681976 /// /// 利用传进来的sql语句查新数据库 /// /// sql语句 /// public string QuerySingle(string sql) { string single = null; using (OleDbConnection connection = new OleDbConnection(str)) { using (OleDbCommand command = new OleDbCommand(sql, connection)) { try { connection.Open(); object obj = command.ExecuteScalar(); if (obj != null) { single = command.ExecuteScalar().ToString(); } } catch { } } } return single; }

110,530

社区成员

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

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

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