zoukankan      html  css  js  c++  java
  • 【验证】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

     

     

  • 相关阅读:
    应用程序池的配置 狼
    SQL跨数据库复制表数据 狼
    <script language= "javascript " for= "window " event= "onload "> 狼
    禁止虚拟目录继承根目录下web.config中的有些配置 web.config的继承禁止方法 狼
    linux 在程序里修改系统时间
    xlinux下载地址
    安装tslib1.4出现的问题汇总
    linux之看门狗 (转)
    VC中显示GIF图片
    mdev 自动挂载U盘成功
  • 原文地址:https://www.cnblogs.com/MyateJx/p/3496635.html
Copyright © 2011-2022 走看看