如何调整组合框下拉列表的大小?

2022-09-03 16:18:15

背景:我正在日食环境中做一些UI工作,在那里我用一些值填充组合控件。字符串值具有不同的长度,并且长度通常大于父复合的组合宽度和宽度。

问题:当我打开下拉列表时,列表的宽度大于父复合的宽度,用户看不到列表条目的完整值。

我尝试使用“setTextLimit”选项,但没有成功。对我来说,如果我可以用一个常量值设置dropdon列表的宽度,那就完全足够了。

代码示例:

this.mComponentName = new Combo (lComponentComposite, SWT.BORDER);  
this.mComponentName.setTextLimit(COMBO_TEXT_LIMIT); 
GridData componentNameGridData = new GridData();
componentNameGridData.widthHint = 166;
this.mComponentName.setLayoutData(componentNameGridData);
this.mComponentName.addSelectionListener(this.mComboSelectionAdapter);
this.mComponentName.addKeyListener(this.mComboKeyAdapter);

问候德克


答案 1

在创建组合框时,还指定水平滚动

this.mComponentName = new Combo (lComponentComposite, SWT.BORDER|SWT.H_SCROLL);  

这不会让文本溢出


答案 2

这确实是一个好问题。在挖掘了开发人员论坛甚至源代码之后,我倾向于说这是不可能的。

我通过切换到CCombo暂时解决了这个问题,但我不喜欢这个解决方案,因为我相信SWT的优势之一是使用原生小部件,而且看起来不那么好(至少在Win7和OS X上)。CCombo


推荐