分享

【验证】C# dataSource 的记忆功能

 昵称10504424 2013-12-30

做项目时遇到的问题:
dataSource被ComboBox引用过一次,会记忆最后一次选中的值,然后下一次再用时这个值会直接呈现在ComboBox中。

为了验证是dataSource还是ComboBox自身含有记忆功能,设置了这样一个实验,

实验的组成:
1.一二两排的第一个ComboBox(以下简称cbm1、4)都负责为同一排第二、第三个ComboBox(以下简称cbm2、3、5、6)动态赋值。
2.DataGridView存在焦点事件,焦点事件的内容是,当选中一个焦点,焦点所在行的每个格的值将在第二排ComboBox上呈现。


实验的步骤:
1.当我选中DataGridView格,焦点所在行的值如数反映在第二排ComboBox上。
2.当我更改cbm4的值,cbm5、cbm6引用了dataSource的值。
3.此时我再更改cbm1的值,cbm2和cbm3引用了和cbm5、cbm6同一个dataSource的值。
4.于是当选中DataGridView格,焦点所在行的值反映在第二排ComboBox上,与此同时,第一排ComboBox表现出惊人的同步性。

实验的结论:

当我第二排ComboBox用过一次dataSource,而第一排ComboBox紧接着又用了dataSource,那么第一排ComboBox将呈现第二排ComboBox在dataSource中引用过的那个值,所以,记忆者不是ComboBox本身,而是dataSource,并且,这个“记忆”是动态记忆。

“dataSource 记忆” 的这个现象我曾和C#吧的一个吧友讨论过,他说查MSDN未果,不过他说,如果你不喜欢这样的记忆功能,有N多种方法可以避免,其中一个就是使用:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多