# Control

**Control** 对象表示 [脚本对话框](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-8/readme.zh-4) 上的一个控件；它允许您读取和修改控件的值（和内容）。使用 [**Dialog**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dialog.zh)**.Control** 方法获取 **Control** 对象。

| 属性名称     | 返回类型                                                                                                                                                                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| bg       | *string*                                                                                                                                                                                                              | 设置或查询用于此控件背景（填充）的颜色。格式为 *#RRGGBB*（十六进制）或 *RRR,GGG,BBB*（十进制）。目前仅支持 *静态文本* 和 *列表视图* 控件的此属性。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| charcase | *string*                                                                                                                                                                                                              | 对于 *编辑* 控件，获取或设置控件的大小写设置。有效值为 **upper**、**lower** 和 **normal**。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| columns  | *object:*[**DialogListColumns**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dialoglistcolumns.zh)                                                              | 对于 *列表视图* 控件，返回一个 [**DialogListColumns**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dialoglistcolumns.zh) 对象，允许您查询或修改 *详细信息* 模式下的列。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| count    | *int*                                                                                                                                                                                                                 | 返回控件中包含的项目数（例如，在 *组合框*、*列表框* 或 *列表视图* 中，返回列表中的项目数）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| cuetext  | *string*                                                                                                                                                                                                              | 获取或设置单行编辑控件的提示文本。这是在编辑控件为空时显示的文本，用于帮助用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| cx       | *int*                                                                                                                                                                                                                 | 设置或查询控件的宽度，以像素为单位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| cy       | *int*                                                                                                                                                                                                                 | 设置或查询控件的高度，以像素为单位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| enabled  | *bool*                                                                                                                                                                                                                | 设置或查询控件的启用状态。如果控件已启用，则返回 **True**，如果已禁用，则返回 **False**。您可以设置此属性来更改状态。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| fg       | *string*                                                                                                                                                                                                              | 设置或查询用于此控件文本（前景）的颜色。格式为 *#RRGGBB*（十六进制）或 *RRR,GGG,BBB*（十进制）。目前仅支持 *静态文本* 和 *列表视图* 控件的此属性。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| focus    | *bool*                                                                                                                                                                                                                | 设置或查询控件的输入焦点状态。如果控件当前具有输入焦点，则返回 **True**，如果它没有焦点，则返回 **False**。设置为 **True** 以使控件获得输入焦点。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| image    | <p><em>string</em> 或<br><em>object:</em><a href="image.zh"><strong>Image</strong></a></p>                                                                                                                             | 对于设置为图像模式的按钮或静态控件，这会将图像分配给控件。您可以提供文件名（或内部图标名称 - 例如 `#about` 用于内部关于图标），或从 [**DOpus**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dopus.zh)**.LoadImage** 或 [**Script**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/script.zh)**.LoadImage** 方法获取的 [**Image**](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/image.zh) 对象。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| label    | <p><em>string</em> 或<br><em>object:</em><a href="image.zh"><strong>Image</strong></a></p>                                                                                                                             | <p>设置或查询控件的标签或标题。并非所有控件都有标签 - 这不会对没有标签的控件（如 <em>列表视图</em>）产生影响。</p><p>请注意，对于 <em>组合框</em> 控件，此属性仅对可编辑组合框有效 - 也就是说，您可以键入自己的文本。您可以使用此属性来设置或查询可编辑文本的当前值。</p><p>对于设置为“图像”模式的静态控件，您还可以提供从 <a href="dopus.zh"><strong>DOpus</strong></a><strong>.LoadImage</strong> 或 <a href="script.zh"><strong>Script</strong></a><strong>.LoadImage</strong> 方法获取的 <a href="image.zh"><strong>Image</strong></a> 对象。这与使用 <code>image</code> 属性相同。</p><p>对于 <em>标签页</em> 控件，您可以通过指定索引来设置或查询各个标签页的标签；例如，<code>Control.label(0)</code> 将引用第一个标签页的标签。</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| mode     | *string*                                                                                                                                                                                                              | 对于 *列表视图* 控件，允许您更改或查询当前视图模式。有效值为 **icon**、**details**、**smallicon**、**list**。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| readonly | *bool*                                                                                                                                                                                                                | 设置或查询 *编辑* 控件的 *只读* 状态。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| redraw   | *bool*                                                                                                                                                                                                                | 设置或查询控件的重绘状态。某些控件允许您关闭重绘，以便在进行多个更改时不会出现可见的闪烁（例如，在 *列表视图* 中添加大量项目）。设置为 **False** 以关闭重绘，或设置为 **True** 以在更改控件后重新打开重绘。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| rotate   | *int*                                                                                                                                                                                                                 | 对于设置为“图像”模式的 *静态文本* 控件，您可以设置此属性以旋转显示的图像。提供的值是从图像初始方向旋转的度数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| style    | *string*                                                                                                                                                                                                              | <p>设置或查询用于显示此控件标签的字体样式。字符串包含零个或多个字符；有效字符为 <strong>b</strong> 表示粗体，<strong>i</strong> 表示斜体。</p><p>目前仅支持 <em>静态文本</em> 控件的此属性。</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| textbg   | *string*                                                                                                                                                                                                              | <p>设置或查询用于此控件文本背景（填充）的颜色。格式为 <em>#RRGGBB</em>（十六进制）或 <em>RRR,GGG,BBB</em>（十进制）。</p><p>目前仅支持 <em>列表视图</em> 控件的此属性。</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| title    | <p><em>string</em> 或<br><em>object:</em><a href="image.zh"><strong>Image</strong></a></p>                                                                                                                             | **label** 属性的替代名称。术语 **title** 用于对话框编辑器和 XML 资源中，也可以在这里用作方便的术语。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| value    | <p><em>string</em> 或<br><em>bool</em> 或<br><em>int</em> 或<br><em>object:</em><a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 或<br><em>object:</em><a href="vector.zh"><strong>Vector</strong></a></p> | <p>设置或查询控件的值。此属性的含义取决于控件的类型：</p><ul><li><strong>编辑控件</strong>: 返回或接受表示编辑控件当前内容的字符串。</li><li><strong>复选框</strong>: 对于简单的开/关复选框，返回或接受一个 <em>bool</em> - <strong>True</strong> 表示选中，<strong>False</strong> 表示未选中。对于三态复选框，返回或接受一个 <em>int</em> - <strong>0</strong> 表示未选中，<strong>1</strong> 表示选中，<strong>2</strong> 表示不确定状态。</li><li><strong>单选按钮</strong>: 返回或接受一个 <em>bool</em> - <strong>True</strong> 表示选中，<strong>False</strong> 表示未选中。</li><li><strong>标签页</strong>: 返回或接受一个 <em>int</em>，表示标签页控件中当前选中的页面。</li><li><strong>列表框 / 组合框 / 列表视图</strong>: 返回或接受一个 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a>，表示选中的项目。设置值时，它也接受一个 <em>int</em>，表示选定项目的 0 索引位置。</li><li><strong>调色板控件</strong>: 返回当前颜色值。如果调色板按钮的复选框已禁用，则颜色字符串前缀为 <code>!</code> 字符。您可以以这种方式设置颜色。您也可以将值设置为“enable”或“disable”来更改复选框状态，而不会影响颜色。</li></ul><p>请注意，对于多选 <em>列表框</em> 或 <em>列表视图</em>，此值将返回一个 <a href="vector.zh"><strong>Vector</strong></a>，其中包含 <a href="dialoglistitem.zh">DialogListItem</a> 对象，表示当前选中的所有项目。</p> |
| visible  | *bool*                                                                                                                                                                                                                | 设置或查询控件的可见状态。如果控件可见，则返回 **True**，如果隐藏，则返回 **False**。您可以设置此属性以隐藏或显示控件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| x        | *int*                                                                                                                                                                                                                 | 设置或查询控件的左（x）位置，以像素为单位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| y        | \*int \*                                                                                                                                                                                                              | 设置或查询控件的顶部（y）位置，以像素为单位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

<table data-header-hidden><thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>方法名称</td><td><strong>参数</strong></td><td>返回类型</td><td>描述</td></tr><tr><td>AddGroup</td><td>&#x3C;string:name><br>&#x3C;int:id><br>[&#x3C;string:flags>]</td><td><em>int</em></td><td><p>向 <em>列表视图</em> 控件添加一个新组。您可以选择将添加到列表的项目放在组中。每个组必须具有唯一的 ID。</p><p>可选的标志为“c”（组可折叠）和“d”（组最初处于折叠状态）。例如，<strong>AddGroup("Unimportant", 100, "cd")</strong> 将添加一个名为 <em>Unimportant</em> 的组，该组最初是折叠的。</p></td></tr><tr><td>AddItem</td><td><p>&#x3C;string:name><br>[&#x3C;int:value>]<br>[&#x3C;int:groupid>]</p><p>或</p><p>&#x3C;object:item></p></td><td><em>int</em></td><td><p>向控件（<em>列表框</em>、<em>组合框</em> 或 <em>列表视图</em>）添加一个新项目。第一个参数是项目的名称，可选的第二个参数是与项目关联的数据值。</p><p>在向分组的 <em>列表视图</em> 添加项目时，可选的第三个参数提供要向其添加项目的组的 ID（在这种情况下必须提供第二个参数，如果不需要值，则可以将其设置为 0）。</p><p>该项目将添加到列表的末尾。</p><p>您还可以传递从另一个控件获取的 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象。</p><p>返回值指示新项目的列表位置。</p><p>如果您要添加到列表视图控件并需要添加具有多列的项目，您可以执行以下操作（JScript）：</p><pre><code>var i = listview.AddItem("This is col 1");
listview.GetItemAt(i).subitems(0) = "This is col 2";
listview.GetItemAt(i).subitems(1) = "This is col 3";
</code></pre></td></tr><tr><td>AutoSize</td><td>[&#x3C;bool:height>]</td><td><em>bool</em></td><td><p>自动调整控件大小，如果控件类型支持自动调整大小。如果控件已自动调整大小，则返回 <strong>True</strong>。</p><p>如果可选的 <em>height</em> 参数设置为 true，则控件将垂直和水平自动调整大小。</p></td></tr><tr><td>DeselectItem</td><td><p>&#x3C;int:position></p><p>或</p><p>&#x3C;object:item></p></td><td><em>int</em></td><td><p>此方法主要用于多选 <em>列表框</em> 和 <em>列表视图</em> 控件。它允许您取消选择控件中的单个项目，同时保留其它项目被选中（或不受影响）。</p><p>您可以指定要选择的项目的索引（0 表示第一个项目，1 表示第二个项目，依此类推），或者指定从 <strong>GetItemAt</strong> 或 <strong>GetItemByName</strong> 方法获取的 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象。</p><p>您还可以指定 <strong>-1</strong> 以取消选择列表框中的所有项目。</p></td></tr><tr><td>EnableGroupView</td><td>&#x3C;bool:enable></td><td>none</td><td>仅适用于 <em>列表视图</em> 控件。默认情况下，组视图处于关闭状态；在使用 <strong>AddGroup</strong> 方法添加组后，使用 <strong>EnableGroupView</strong> 打开组视图。</td></tr><tr><td>GetGroupById</td><td>&#x3C;int:id></td><td>object:<a href="dialoglistgroup.zh"><strong>DialogListGroup</strong></a></td><td>返回一个 <a href="dialoglistgroup.zh"><strong>DialogListGroup</strong></a> 对象，表示您之前使用 <strong>AddGroup</strong> 方法添加到 <em>列表视图</em> 控件的具有指定 ID 的组。</td></tr><tr><td>GetItemAt</td><td>&#x3C;int:position></td><td>object:<a href="dialoglistitem.zh"><strong>DialogListItem</strong></a></td><td>返回一个 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象，表示控件中指定索引位置的项目（<em>列表框</em>、<em>组合框</em> 或 <em>列表视图</em>）。项目 0 表示列表中的第一个项目，项目 1 表示第二个项目，依此类推。</td></tr><tr><td>GetItemByLabel<br>GetItemByName</td><td>&#x3C;string:name></td><td>object:<a href="dialoglistitem.zh"><strong>DialogListItem</strong></a></td><td>返回一个 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象，表示控件中具有指定名称的项目（<em>列表框、组合框或列表视图</em>）。此方法有两个名称（...<em>Label</em> 和 ...<em>Name</em>），出于历史原因，您可以互换使用任一方法名称）。</td></tr><tr><td>InsertItemAt</td><td><p>&#x3C;int:position><br>&#x3C;string:name><br>[&#x3C;int:value>]<br>[&#x3C;int:groupid>]</p><p>或</p><p>&#x3C;int:position><br>&#x3C;object:item></p></td><td><em>int</em></td><td><p>在控件（<em>列表框、组合框或列表视图</em>）中插入一个新项目。第一个参数是要插入项目的位置（0 表示列表开头，1 表示第二个位置，依此类推）。第二个参数是项目的名称，可选的第三个参数是与项目关联的数据值。</p><p>在向分组的 <em>列表视图</em> 添加项目时，可选的第四个参数提供要向其添加项目的组的 ID（在这种情况下必须提供第三个参数，如果不需要值，则可以将其设置为 0）。</p><p>除了 <em>name</em> 和 <em>value</em> 之外，您还可以传递从另一个控件获取的 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象。</p><p>返回值指示新项目的列表位置。</p></td></tr><tr><td>MoveItem</td><td>&#x3C;int:position><br>or<br>&#x3C;object:item><br>&#x3C;int:newposition></td><td><em>int</em></td><td><p>将现有项目移动到新位置（<em>列表框</em>、<em>组合框</em> 或 <em>列表视图</em>）。第一个参数是要移动的项目（您可以传递其索引或 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象），第二个参数是项目要移动到的新位置。</p><p>返回值指示已移动项目的列表位置。</p></td></tr><tr><td>RemoveGroup</td><td>&#x3C;int:id></td><td>none</td><td>从 <em>列表视图</em> 控件中删除指定的组。</td></tr><tr><td>RemoveItem</td><td>&#x3C;int:position><br>or<br>&#x3C;object:item></td><td>none</td><td><p>从控件（<em>列表框、组合框或列表视图</em>）中删除一个项目。您可以提供要删除项目的索引（0 表示第一个项目，1 表示第二个项目，依此类推），或者提供从 <strong>GetItemAt</strong> 或 <strong>GetItemByName</strong> 方法获取的 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象。</p><p>您还可以指定 <strong>-1</strong> 以完全清除控件的内容，一次性删除所有项目。</p></td></tr><tr><td>SelectItem</td><td>&#x3C;int:position><br>or<br>&#x3C;object:item><br>or <br>&#x3C;string:tab></td><td><em>int</em></td><td><p>在控件中选择一个项目。对于 <em>列表框、组合框或列表视图</em>，您可以指定要选择的项目的索引（0 表示第一个项目，1 表示第二个项目，依此类推），或者提供从 <strong>GetItemAt</strong> 或 <strong>GetItemByName</strong> 方法获取的 <a href="dialoglistitem.zh"><strong>DialogListItem</strong></a> 对象。</p><p>对于多选 <em>列表框</em> 或 <em>列表视图</em>，您还可以指定 <strong>-1</strong> 以选择控件中的所有项目。</p><p>对于 <em>标签页</em> 控件，您可以通过指定要显示的页面名称（即子对话框的名称）来更改可见的页面。</p><p>返回值指示新的选中索引。</p></td></tr><tr><td>SelectRange</td><td><p>&#x3C;int:start><br>&#x3C;int:end></p><p>或</p><p>&#x3C;object:item1><br>&#x3C;object:item2></p></td><td>object:<a href="vector.zh"><strong>Vector</strong></a></td><td><p>在 <em>编辑控件</em>（或 <em>组合框</em> 控件中的编辑字段）中选择文本。这两个参数表示所需选择的开始和结束位置。要选择整个内容，请将 <strong>0</strong> 用于开始，将 <strong>-1</strong> 用于结束。</p><p>返回值是一个 <a href="vector.zh"><strong>Vector</strong></a>，它有两个成员，提供选择的当前开始和结束位置。要查询范围而不更改它，只需在不带任何参数的情况下调用 <strong>SelectRange</strong> 方法即可。</p><p>在 <em>列表框</em> 或 <em>列表视图</em> 控件中，此方法会选择一系列项目。</p></td></tr><tr><td>SetFont</td><td>&#x3C;int:id></td><td>none</td><td>将控件使用的字体设置为指定的字体。<em>id</em> 参数必须来自对 <a href="dialog.zh"><strong>Dialog</strong></a><strong>.CreateFont</strong> 的先前调用。您可以使用 0 将字体重置为默认值。</td></tr><tr><td>SetItemWidth</td><td>&#x3C;int:width></td><td>none</td><td>设置设置为 <strong>list</strong> 或 <strong>smallicon</strong> 模式的列表视图控件中项目的宽度（以像素为单位）。指定 <strong>-1</strong> 以自动调整项目大小。</td></tr><tr><td>SetPos</td><td>&#x3C;int:x><br>&#x3C;int:y></td><td>none</td><td>设置此控件的位置。x 和 y 坐标以像素为单位。</td></tr><tr><td>SetPosAndSize</td><td>&#x3C;int:x><br>&#x3C;int:y><br>&#x3C;int:cx><br>&#x3C;int:cy></td><td>none</td><td>以单个操作设置控件的位置和大小。所有坐标均以像素为单位。</td></tr><tr><td>SetSize</td><td>&#x3C;int:cx><br>&#x3C;int:cy></td><td>none</td><td>设置此控件的大小。cx（宽度）和 cy（高度）值以像素为单位。</td></tr></tbody></table>
