返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C# SelectedIndexChanged事件详解
  • 403
分享到

C# SelectedIndexChanged事件详解

2024-04-02 19:04:59 403人浏览 八月长安
摘要

SelectionChangeCommitted事件 在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发

SelectionChangeCommitted事件

在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发该事件, 只是在界面选择combobox不同值时触发。

SelectedIndexChanged事件  当 SelectedIndex 属性更改时发生,索引改变时触发。

SelectedValueChanged事件   当 SelectedValue 属性更改时发生,值改变时触发。

区别:

  1. SelectedIndexChanged和SelectedValueChanged可以通过编程的方式更改属性而触发事件,但SelectionChangeCommitted事件必须由用户操作选定选项才能触发。
  2. 在初始化时(设置源)SelectedIndexChanged和SelectedValueChanged都会被调用,而SelectionChangeCommitted没有这个问题。
  3. SelectionChangeCommitted也有一个小问题,当打开下拉菜单,用键盘的上下光标键选择条目后(不用鼠标点击),鼠标点击其他控件,使焦点转移,此时comboBox的Text属性已改变,SelectedIndex属性也已改变,但这样的操作不会触发SelectionChangeCommitted事件。结论:SelectionChangeCommitted一定要由鼠标选择才能触发(个人感觉)。

关于事件的触发

设置DataSource, DisplayMember, ValueMember不同顺序触发SelectedIndexChanged事件和SelectedValueChanged事件的次数

顺序一:

this.comboBox1.DisplayMember = "userName";  (不触发)

this.comboBox1.ValueMember = "userAge";    (只触发SelectedValueChanged)

this.comboBox1.DataSource = dt; (都触发)

SelectedValueChanged触发两次(总是先触发)SelectedIndexChanged,触发一次 (设置DisplayMember属性时不触发两种事件)

顺序二:

this.comboBox1.ValueMember = "userAge";

this.comboBox1.DisplayMember = "userName";

this.comboBox1.DataSource = dt;

同上

顺序三:

this.comboBox1.DataSource = dt; (都触发)

this.comboBox1.DisplayMember = "userName";(都触发)

this.comboBox1.ValueMember = "userAge";(只触发SelectedValueChanged事件)

SelectedValueChanged触发三次(总是先触发)SelectedIndexChanged,触发两次 (设置DisplayMember属性时不触发两种事件)

顺序四:

this.comboBox1.DataSource = dt; (都触发)

this.comboBox1.ValueMember = "userAge";(都触发) 其中SelectedValueChanged触发两次

this.comboBox1.DisplayMember = "userName";(都触发)

SelectedValueChanged触发四次(总是先触发)SelectedIndexChanged,触发三次 (设置DisplayMember属性时不触发两种事件)

说明:当设置了DataSource 属性后,SelectedValue 属性值会默认为第一行(所以会触发SelectedIndexChanged事件和SelectedValueChanged事件),因此,如果不希望ComboBox自动选择第一行,还需在设置完DataSource 后自行将SelectedValue 设为“”。

到此这篇关于C# SelectedIndexChanged事件详解的文章就介绍到这了,更多相关C# SelectedIndexChanged事件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C# SelectedIndexChanged事件详解

本文链接: https://lsjlt.com/news/132460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C# SelectedIndexChanged事件详解
    SelectionChangeCommitted事件 在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发...
    99+
    2024-04-02
  • 详解c# 事件总线
    目录简介实现事件总线定义事件基类定义事件参数基类定义EventBus使用事件总线事件及事件参数定义发布者定义订阅者实际使用总结简介 事件总线是对发布-订阅模式的一种实现,是一种集中...
    99+
    2024-04-02
  • c#委托与事件(详解)
    目录前言一、声明方法二、声明委托三、实例化委托四、使用委托总结前言 .NET中的委托是一个类,它定义了方法的类型,是一个方法容器。委托把方法当作参数,可以避免在程序中大量使用条件判...
    99+
    2024-04-02
  • C#中的委托和事件详解
    从大学就开始做C#这块,也做C#几年了,最近又从ios转回.Net,继续做C#,之前也没有写博客的习惯,写博客也是从我做ios的时候开始的,现在既然又做回了.net,那就写点关于.N...
    99+
    2024-04-02
  • MySQL-事件详解
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 事务 1 事务简介...
    99+
    2023-09-03
    数据库 mysql 云计算
  • onbeforeunload事件详解
    onbeforeunload事件是JavaScript中的一个事件,它在浏览器窗口或标签将要关闭之前触发。当用户关闭页面、刷新页面、...
    99+
    2023-08-29
    onbeforeunload
  • C#事件中的两个参数详解(objectsender,EventArgse)
    目录C#事件参数(object sender,EventArgs e)C#函数中(object sender, EventArgs e)参数是什么意思object sender:表示...
    99+
    2024-04-02
  • javascript事件冒泡,事件捕获和事件委托详解
    1、事件冒泡:在javascript事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止。并不是所有的事件...
    99+
    2024-04-02
  • 详解Node.js:events事件模块
    Nodejs的大部分核心API都是基于异步事件驱动设计的,所有可以分发事件的对象都是EventEmitter类的实例。 大家知道,由于nodejs是单线程运行的,所以nodejs需要借助事件轮询,不断去查...
    99+
    2022-06-04
    详解 模块 事件
  • React合成事件详解
    目录从点击输入框开始 扩展 点击输入框引起多个事件 为什么react中的input设置value后成为受控组件? 为什么合成事件属性有时无法访问? react如何模拟事件的阻止冒泡、...
    99+
    2024-04-02
  • Spring事件监听详解
    目录一、观察者模式二、spring事件三、注册监听器四、发布事件一、观察者模式 先来看下观察者模式,举个例子 警察和军人是观察者,犯罪嫌疑人是被观察者 代码实现: 定义被观察者接口...
    99+
    2024-04-02
  • JavaScript的DOM事件详解
    目录1、事件对象2、事件流3、事件委托4、综合案例总结1、事件对象 【获取事件对象】 什么是事件对象:是个对象,这个对象里有事件触发时的相关信息。事件对象的语法 元素.addEven...
    99+
    2024-04-02
  • jQuery中的事件详解
    目录一、概述:二、绑定事件处理器1、.on():2、.one():3、.off():4、.trigger():5、.triggerHandler():6、jQuery.proxy()...
    99+
    2024-04-02
  • 详解JavaScript事件循环
    目录一、事件循环的执行过程二、事件循环进阶用法三、JavaScript任务类型3.1 同步任务&异步任务3.2 宏任务&微任务JavaScript事件循环是一种机制,...
    99+
    2023-05-16
    JavaScript事件循环 JavaScript循环
  • js事件委托详解
    1、每个函数都是对象,占用内存。内存中的对象越多,性能越差。解决事件处理过多问题的办法是事件委托。 2、事件委托冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 实例 ...
    99+
    2024-04-02
  • React事件绑定详解
    目录类组件事件绑定函数组件事件绑定总结 React事件绑定和原生DOM事件绑定相似 语法:on+事件名={事件处理程序} 例如:onClick={()=>{}...
    99+
    2024-04-02
  • Python 键盘事件详解
    目录键盘事件1、删除键 BACKSPACE2、回车键 ENTER3、全选操作 CTRL + a4、复制操作CTRL + c5、粘贴操作 CTRL + v6、剪切操作 CTRL + x...
    99+
    2024-04-02
  • 基于事件冒泡、事件捕获和事件委托详解
    事件冒泡、事件捕获和事件委托 在javascript里,事件委托是很重要的一个东西,事件委托依靠的就是事件冒泡和捕获的机制,我先来解释一下事件冒泡和事件捕获: 事件冒泡会从当前触发...
    99+
    2024-04-02
  • js事件流、事件委托与事件阶段实例详解
    目录前言1、事件流2、事件处理程序3、事件对象4、跨浏览器事件处理5、事件委托总结前言 JavaScript 与 HTML 的交互是通过事件实现的,事件代表文档或浏览器窗口中某个有意...
    99+
    2024-04-02
  • C#事件中的两个参数详解(object sender,EventArgs e)
    在C#事件中,通常会有两个参数,分别是"object sender"和"EventArgs e"。下面是对这两个参数的详细解释:1....
    99+
    2023-08-17
    C#
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作