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


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

     

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

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


    实验的步骤:
    1.当选中DataGridView格,焦点所在行的值如数反映在第二排ComboBox上。
    2.当更改cb4的值,cb5、cb6引用了dataSource的值。
    3.此时再更改cb1的值为cb2、cb3动态赋值,即cb2和cb3引用了和cb5、cb6同一个dataSource的值。
    4.于是当选中DataGridView格,焦点所在行的值反映在第二排ComboBox上,与此同时,第一排ComboBox表现出惊人的同步性。

    实验的结论:

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

     

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

    1 comboBox1.Items.Clear();
    2 foreach (string item in 你定义的数组)
    3 {
    4    comboBox1.Items.Add(item);
    5 }

     

    实验的演示录像:

    链接: http://pan.baidu.com/s/1pJ2OTCn 密码: m5o4

     

     

  • 相关阅读:
    oracle 数据库安全审计
    oracle 共享服务器监控
    oralce MTS
    配置一个Oracle共享服务器进程环境需要哪两项参数
    python3 小技巧(2)
    python3 操作注册表
    PYC文件简介
    常见HTTP状态(304,200等)
    用Python模拟浏览器操作
    python3下的IE自动化模块PAMIE
  • 原文地址:https://www.cnblogs.com/MyateJx/p/3496635.html
Copyright © 2020-2023  润新知