c#winform程序。 怎样在关闭formA时判断formA中的控件上的值是否被修改过? 注:前提是界面上有好多textbo

并且界面初始化时部分控件(具体哪些不确定)上已经有值。... 并且界面初始化时部分控件(具体哪些不确定)上已经有值。 展开
 我来答
glenlove
2011-03-25 · 超过26用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:70.4万
展开全部
比较笨的方法就是写每个textbox的TextChange方法,定义一变量,有变化时修改状态,到时在关闭的时候判断下变量就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ico120
2011-03-25
知道答主
回答量:18
采纳率:0%
帮助的人:10.1万
展开全部
楼上说的没错,你用一个变量来保存更改的值,在重写form的closing事件,在里面做个判断就可以了,菜鸟的飘过!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lwainixl
2011-03-25 · TA获得超过2095个赞
知道大有可为答主
回答量:3468
采纳率:62%
帮助的人:1687万
展开全部
定义个bool flag=false;
给控件change事件加上 flag=true;
缺点就是删了一个 在写上同一个值 值一样 也算修改了
我没别的办法了。嘿嘿。我也菜鸟
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
endall_man
2011-03-25 · TA获得超过154个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:116万
展开全部
public partial class formA : Form
{
public formA()
{

InitializeComponent();
this.lod();

}
List<Control> bl=new List<Control>();//用来装更改过数据TextBox
private void lod(){ //给窗体中的TextBox添加TextChanged事件处理
foreach(Control c in this.Controls){
if(c is TextBox){
c.TextChanged+=delegate {
foreach(Control c1 in bl){
if(c1==c)return;

}
bl.Add(c);
};
}
}
}

void formAFormClosing(object sender, FormClosingEventArgs e)
{
if(bl.Count>0){
string str="";
foreach(Control c in bl)str+=c.Name+",\n";
MessageBox.Show("以下控件发生更改:\n"+str);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式