总的Composite使用的是FormLayout,其中上面一个子Composite使用的是GridLayout,三个button所在的Composite命名为buttonComp. 要想设置下面的text在buttonComp的左边,是不可行的。
Composite comp = new Composite(parent, SWT.BORDER);
comp.setLayout(new FormLayout());
Composite aboveComp = createAboveComposite(comp);
Text textBelow = new Text(comp, SWT.BORDER);
textBelow.setText("Below");
textBelow.setToolTipText("Below tool tip");
FormData aboveCompFormData = new FormData();
aboveCompFormData.top = new FormAttachment(0);
aboveCompFormData.left = new FormAttachment(0);
aboveCompFormData.right = new FormAttachment(100);
aboveComp.setLayoutData(aboveCompFormData);
FormData textFormData = new FormData();
textFormData.top = new FormAttachment(aboveComp);
textFormData.left = new FormAttachment(0);
textFormData.right = new FormAttachment(buttonComp);
textBelow.setLayoutData(textFormData);
实际运行的效果是下面的Text不见了。这是因为在FormData.getRightAttachment方法中
FormAttachment getRightAttachment (Control control, int spacing, boolean flushCache) {
if (cacheRight != null) return cacheRight;
if (isVisited) return cacheRight = new FormAttachment (0, getWidth (control, flushCache));
if (right == null) {
if (left == null) return cacheRight = new FormAttachment (0, getWidth (control, flushCache));
return cacheRight = getLeftAttachment (control, spacing, flushCache).plus (getWidth (control, flushCache));
}
Control rightControl = right.control;
if (rightControl != null) {
if (rightControl.isDisposed ()) {
right.control = rightControl = null;
} else {
if (rightControl.getParent () != control.getParent ()) {//must be same parent
rightControl = null;
}
}
}
计算出来的numerator为0
如果上面的Composite是遗留的类,不能更改。想要实现下面的Text在buttonComp的左边,可以在下面的Composite中建相同的buttonComp, setVisible(false).
分享到:
相关推荐
例如,我们可以定义一个名为`MessageEventHandler`的委托,它接受两个参数:一个表示事件源的对象,另一个是自定义的事件数据类。 ```csharp public delegate void MessageEventHandler(object sender, ...
- 表是Control-M中的一个重要概念,它定义了作业执行时需要的数据源和参数。 - 在定义作业时,用户需要指定作业类型(如命令、文件传输、数据库操作等),设置执行环境,定义作业顺序,以及处理输入和输出文件。 ...
XControl是LabView中的一个重要概念,它是自定义控件(Custom Control)的一种高级形式,为开发者提供了更强大的功能和灵活性。本篇文章将深入探讨LabView的XControl,帮助你了解其创建过程及其在实际应用中的价值。...
ControlDesk是一个集成的硬件在环(HIL)仿真环境,它被广泛应用于汽车、航空航天以及其他工程领域的实时测试和数据分析。本教程主要目的是让使用者了解ControlDesk的基本操作,实验管理,虚拟仪表应用,数据分析,...
例如,我们可以创建一个名为`ControlValueChanged`的委托,它接受一个字符串参数,表示新值。 ```csharp public delegate void ControlValueChangedEventHandler(string newValue); ``` 2. **创建事件**:接着,在...
XControl是LabVIEW中的一个核心概念,它是一种可重用的用户界面组件,类似于传统编程中的控件或类库。通过创建XControl,开发者可以封装复杂的算法或者功能,使得在其他VI(Virtual Instrument)中调用变得更加方便...
在C# WinForm应用开发中,用户控件(UserControl)是一种自定义控件,它允许开发者组合多个标准控件并作为一个单一的组件使用。在实际项目中,我们经常需要在窗体(Form)和用户控件之间传递数据,以便实现更复杂的...
在SDK中,你可以使用`CreateWindow`或`CreateWindowEx`函数创建一个Tab Control,并通过`TCM_INSERTITEM`消息添加选项卡。Tab Control常用于设置面板、软件配置界面等,它提高了界面的可读性和用户操作的效率。 2. ...
这里的`compositeData.title`就是一个传入Custom Control的字符串参数,`compositeData.dsn[compositeData.fieldName]`则动态地绑定了数据源(`compositeData.dsn`)的一个字段(`compositeData.fieldName`)。...
在屏幕设计器中创建一个 Table Control 需要指定一个名称(例如 `tab_ctrl_name`),并且设置相关的属性,如显示的列数等。 2. **ABAP 程序中的声明** 在 ABAP 程序中,需要使用 `CONTROLS <tab_ctrl_name> TYPE...
它通过提供一个直观的图形用户界面(GUI),使得开发者可以轻松配置各种电机控制相关的参数,并自动生成相应的头文件。 #### 二、MotorControl Workbench的特点与功能 1. **参数配置**: 用户可以通过GUI来配置电机...
这里,`DataTransferEventArgs`是一个自定义的事件参数类,包含要传递的数据。 2. **定义事件**:在UserControl类中,声明一个基于上述委托的事件。 ```csharp public event DataTransferEventHandler DataTransfer...
你可以定义一个函数,如`bool IsRow符合条件(int nItem)`,返回true表示该行满足条件,false表示不满足。 5. **改变行的背景色**: 如果IsRow符合条件()返回true,可以使用RedrawItems()函数重绘指定范围的行,...
在Windows编程中,List Control...需要注意的是,这只是一个基本的示例,实际应用中可能需要处理更多细节,如颜色渐变、鼠标悬停效果等。此外,考虑到性能问题,应该避免不必要的重绘操作,确保自定义绘制的效率。
ControlCAN.dll是一个动态链接库(DLL)文件,主要用于与周立功公司的CAN(Controller Area Network)PCI接口卡进行通信。CAN总线是一种广泛应用于汽车、工业自动化和其他嵌入式系统的串行通信协议,它以其高可靠性...
标题:“IEWebControl.exe” 描述:这是一个与IE浏览器控件相关的可执行文件,主要用于在应用程序中内嵌Internet Explorer的功能。 IEWebControl.exe是Microsoft开发的一个ActiveX控件,它允许开发者在Windows应用...
总结来说,PLCopen Motion Control Library是PLC控制领域的一个重要工具,它提供了标准化的运动控制功能,有助于简化开发过程,提升系统性能,并增强不同厂商产品间的互操作性。通过深入理解并应用这份技术说明文档...
Control Builder M作为一个集成开发环境(IDE),它具有以下关键知识点: 1. 熟练使用Control Builder M进行编程:这包括理解如何在该软件中创建项目,以及如何使用其提供的编程语言和功能块进行程序的编写和调试。 ...