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

     

     

  • 相关阅读:
    Android 项目结构图
    MySQL的简单使用
    MySql简易配置
    SQL Server 2008 R2 错误代码:233
    C#设置输入框只输入数字
    【学习笔记】JAva编程思想之多态
    【Java之对象清理】finalize()的用途
    【错误总结】java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
    【学习笔记】Struts2之配置处理结果
    【学习笔记】Struts2之一个Action包含多个控制处理逻辑
  • 原文地址:https://www.cnblogs.com/MyateJx/p/3496635.html
Copyright © 2011-2022 走看看