我在ScrolledComposite中有一个CheckboxTableViewer。我必须根据另一个checkBox按钮启用或禁用所有tableItems。为此,我正在使用
CheckboxTableViewer.getTable().setEnabled(false).
在上述情况下,ScrolledComposite也会与表一起禁用。但是我希望滚动行为像往常一样工作,即使禁用了CheckboxTableViewer(也禁用了for中的所有项目)。
答案 0 :(得分:0)
禁用时,无法使表格控件显示滚动条。这就是本机控件的工作方式,即操作系统呈现控件的方式。
但是,您可以将Table控件包装在ScrolledComposite中。这样,ScrolledComposite将滚动而不是表。
以下是我所做的代码:
table.setEnabled(false);
Composite composite = table.getParent();
if ((null != composite) && (composite instanceof ScrolledComposite)) {
ScrolledComposite scrolledComposite = (ScrolledComposite)composite;
scrolledComposite.setMinSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}