combox高度修改 winfrom_c# – 如何使ComboBox下拉列表调整大小以适应最大的项目?...

本文介绍了一种改进的ComboBox控件,通过自动调整下拉列表的宽度以适应包含的最长项目,确保所有文本都能完全显示。代码示例展示了如何在WinForms应用中实现这个功能。
摘要由CSDN通过智能技术生成

这就是我为解决这个问题所做的工作,效果很好……

public class ImprovedComboBox : ComboBox

{

public ImprovedComboBox()

{

}

public object DataSource

{

get { return base.DataSource; }

set { base.DataSource = value; DetermineDropDownWidth(); }

}

public string DisplayMember

{

get { return base.DisplayMember; }

set { base.DisplayMember = value; DetermineDropDownWidth(); }

}

public string ValueMember

{

get { return base.ValueMember; }

set { base.ValueMember = value; DetermineDropDownWidth(); }

}

private void DetermineDropDownWidth()

{

int widestStringInPixels = 0;

foreach (Object o in Items)

{

string toCheck;

PropertyInfo pinfo;

Type objectType = o.GetType();</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,使用combox的DataSource属性可以将数据源绑定到combox控件上,以便在运行时动态更新combox的选项。根据引用\[1\]和引用\[2\]的内容,可以看出在设置combox的DataSource之后,通过修改数据源的内容并调用ResetBindings方法来更新combox的选项。然而,根据引用\[3\]的描述,即使数据源已经更新并赋值给combox,但combox的选项并没有改变。这可能是因为在更新数据源时,涉及到了多线程操作,而combox的选项更新是在主线程中进行的,导致数据源的更新没有及时反映到combox上。 为了解决这个问题,可以尝试在更新数据源后,使用Invoke方法将更新combox选项的代码放在主线程中执行。这样可以确保数据源的更新能够及时反映到combox上。具体的实现方式可以参考引用\[2\]中提到的使用timer的解决方案。通过在timer的Tick事件中执行更新combox选项的代码,可以确保在主线程中进行操作,从而解决数据源更新不及时的问题。 #### 引用[.reference_title] - *1* [Winform combox 数据源datasource 实时刷新](https://blog.csdn.net/zhangxiao0122/article/details/116045251)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C# winform 关于Combobox更改数据源(datasoure)的问题](https://blog.csdn.net/weixin_43947901/article/details/123636102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值