如何通过函数获取ComboBox的值?自定义函数返回null求错误排查
问题根源与解决方案
嘿,我来帮你搞定这个返回null的问题!你现在用的SelectedText属性,其实和你想的不一样——它不是用来获取当前选中项的完整文本的,而是用来获取或设置ComboBox输入框中被用户手动选中的那部分文本内容。如果用户没有手动选中输入框里的文字,这个属性就会返回空或者null,这就是你遇到的问题!
正确的获取方式分两种情况:
情况1:你只是想获取当前选中项的显示文本
直接用ComboBox.Text属性,或者把SelectedItem转成字符串(如果你的ComboBox里是字符串项的话)。修改后的函数可以写成这样:public string GetSelectedYear(ComboBox cbYears) { // 方法一:用Text属性,直接获取当前选中项的文本 return cbYears.Text; // 或者方法二:如果确定SelectedItem是字符串类型,也可以这样写 // return cbYears.SelectedItem?.ToString(); }情况2:你的ComboBox绑定了数据源(比如绑定了一个对象集合)
如果你是通过DataSource绑定的数据,并且设置了DisplayMember和ValueMember,那应该用SelectedValue来获取对应的值:public string GetSelectedYearValue(ComboBox cbYears) { return cbYears.SelectedValue?.ToString(); }
再啰嗦两句SelectedText的正确用法
比如用户在ComboBox的输入框里手动选中了“2024”里的“20”,这时候SelectedText才会返回“20”——它是针对文本选中区域的,不是当前选中项的整体文本,所以完全不符合你的需求哦!
内容的提问来源于stack exchange,提问作者Birol çağlar
相关产品推荐
相关产品推荐

