社区
C#
帖子详情
C#winform 如何设定标志处理当前未完成操作?
happychou
2009-04-09 09:19:29
现在碰到这样一个问题:
就是程序上有一些操作,比如界面上有几个TextBox,需要用户输入,然后保存用户输入的数据在文本文件上。
若是用户没有输入完全,就转向其他的界面,或者未点击保存操作就点击其他的操作,此时应该需要一个事件进行处理,该怎么处理啊?比如任务栏的颜色变化或者弹出对话框提示等等。。。
有没有大侠做过此类事件给指点指点。谢谢
(我用的是布尔变量,检查所有的TextBox是否为空,然后处理,但是效果很差)
...全文
259
27
打赏
收藏
C#winform 如何设定标志处理当前未完成操作?
现在碰到这样一个问题: 就是程序上有一些操作,比如界面上有几个TextBox,需要用户输入,然后保存用户输入的数据在文本文件上。 若是用户没有输入完全,就转向其他的界面,或者未点击保存操作就点击其他的操作,此时应该需要一个事件进行处理,该怎么处理啊?比如任务栏的颜色变化或者弹出对话框提示等等。。。 有没有大侠做过此类事件给指点指点。谢谢 (我用的是布尔变量,检查所有的TextBox是否为空,然后处理,但是效果很差)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzxap
2009-04-09
打赏
举报
回复
MouseLeave 鼠标离开控件
Leave 当控件不在是活动控件的时候触发
winform中要自己写方法进行校验的
一般顺序:
1、textbox gotfocus后注册事件textbox leave
2、textbox leave后校验是否成功,之后解除和这个textbox挂钩的leave事件
happychou
2009-04-09
打赏
举报
回复
各位还有没有其他的好方法?
happychou
2009-04-09
打赏
举报
回复
[Quote=引用 19 楼 xufzu123 的回复:]
在TextBox失去焦点的事件处理方法中判断
[/Quote]
有很多的TextBox,每个事件都要写吗?
xufzu123
2009-04-09
打赏
举报
回复
在TextBox失去焦点的事件处理方法中判断
zzxap
2009-04-09
打赏
举报
回复
if(DOCUMENT.getelementByid("textBox1").value=="")
{
DOCUMENT.getelementByid("textBox1").Focus();
return false;
}
aa37742698
2009-04-09
打赏
举报
回复
如果点击保存 bool flag=true; 否则bool flag=false; 然后点击其他按钮前判断下就OK了
mawering
2009-04-09
打赏
举报
回复
你可以在别的按钮上加上对TextBox.Text的判断,为空则弹出提示;
也可以通过来控制焦点来解决,当打开别的窗口时,当前这个Form失去焦点就判断一下TextBox.Text的值,为空则弹出一个提示.
liang4571231
2009-04-09
打赏
举报
回复
//如果你希望在窗体Form1(如最小化,焦点移至其他窗体)的时候也触发此事件,则
this.TextBox1.LostFocus+=new EventHandler(TextBox1_LostFocus);//注册事件,写在窗体构造函数中
void TextBox1_LostFocus(object sender,EventArgs e)
{
//写你的查询逻辑
}
否则可以用Leave事件
private void textBox1_Leave(object sender, EventArgs e)
{
MessageBox.Show(this.textBox1.Text);
}
liang4571231
2009-04-09
打赏
举报
回复
[Quote=引用 8 楼 happychou 的回复:]
引用 7 楼 wf5360308 的回复:
这样提示:
if (this.txb1.Text.Trim() == "")
{
MessageBox.Show(this, "提示信息!", "提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
this.txb1.Focus();
return;
}
恩,我也是这么写的,但是无法获得用户点击其他按钮的事件啊
比如:用户未点击保存,然后又点击其他的按钮,这个事件…
[/Quote]
你的想法好像不是很科学,但如果真的是这样的话,你就把上面的代码重构成一个函数,在每个按钮的单击事件中都调用这个函数,但单机的是TextBox时不能调用,否则你就没法往下写了
happychou
2009-04-09
打赏
举报
回复
现在的主要问题是按钮转移时(点击其他的按钮)和当前窗口转换时的事件如何获取。。。
liang4571231
2009-04-09
打赏
举报
回复
基本上是点击保存按钮的时候判断各个TxtBox控件是否为空,为空则弹出提示框,MessageBox.show();
wts_net
2009-04-09
打赏
举报
回复
学习
ztenv
2009-04-09
打赏
举报
回复
可以把条件做为一个集合来处理,放到一个list中,当向下一步时,先判断此集合的条件都是都为真,如果不为真则说明条件不成熟,需要继承在当前界面操作;
happychou
2009-04-09
打赏
举报
回复
在线等解决。。。。。
happychou
2009-04-09
打赏
举报
回复
[Quote=引用 7 楼 wf5360308 的回复:]
这样提示:
if (this.txb1.Text.Trim() == "")
{
MessageBox.Show(this, "提示信息!", "提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
this.txb1.Focus();
return;
}
[/Quote]
恩,我也是这么写的,但是无法获得用户点击其他按钮的事件啊
比如:用户未点击保存,然后又点击其他的按钮,这个事件怎么获得啊?
冷月孤峰
2009-04-09
打赏
举报
回复
这样提示:
if (this.txb1.Text.Trim() == "")
{
MessageBox.Show(this, "提示信息!", "提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
this.txb1.Focus();
return;
}
lee118
2009-04-09
打赏
举报
回复
忘写了一句,应该在在判断是否为空之前,先判断这个控件的TAG值标志的是否是不可为空
happychou
2009-04-09
打赏
举报
回复
自己顶。。。
lee118
2009-04-09
打赏
举报
回复
可以使用控件的TAG值表示那个控件不可为空
在你点击确定按钮的时候,把窗体内的控件都循环判断一下就行了
foreach(control ctrl in this.controls)
{
if(ctrl.Text.Trim() == string.empty)
{
MessageBox("");
ctrl.Focus();
}
happychou
2009-04-09
打赏
举报
回复
那如果一个界面上有很多的TextBox,岂每个不是都要写?
还有就是用户如果点击其他的界面的话,我使用的是Active属性,效果也不好。
加载更多回复(7)
C#
Winform
实现Http断点续传下载
开发环境vs2008,语言
C#
,
WinForm
实现http下断点续传文件
利用
C#
Winform
实现区域截屏
用
winform
写的一个简单实现截屏,可以任意区域截取矩形图片和全屏,还有很多没有写的扩展功能,有兴趣的可以把代码拿去接着写
C#
winform
自动更新程序及DEMO
一个
C#
winform
自动更新程序及DEMO
C#
_
winform
_DataGridView_checkbox复选框_实现单选效果
C#
_
winform
_DataGridView_checkbox复选框_实现单选效果
C#
winform
自动更新 Dome
C#
winform
自动更新 Dome
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章