Tipos de Controle ActiveX Legado (Forms 2.0)
Tipos de Controle Legado ActiveX (Forms 2.0)
Trabalhando com Objetos OLE e Conteúdo Incorporado cobre como acessar um controle ActiveX do Microsoft Forms 2.0 incorporado através de OleFormat.OleControl e convertê-lo para o abstrato Forms2OleControl classe base. Aspose.Words FOSS para .NET também expõe cinco subclasses fortemente tipadas para os tipos específicos de controle que o Word suporta – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, e MorphDataControl – cada um no Aspose.Words.Drawing.Ole namespace, adicionando um membro específico de controle além das propriedades Forms2OleControl já fornece (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl e OptionButtonControl
CheckBoxControl estende MorphDataControl e adiciona Checked (um bool) para o estado ligado/desligado do controle. OptionButtonControl também estende MorphDataControl e adiciona Selected (um bool) – usado para um conjunto de botões de opção mutuamente exclusivos que compartilham o mesmo GroupName.
TextBoxControl
TextBoxControl estende MorphDataControl e adiciona Text (um string), o texto exibido e editável do controle.
CommandButtonControl
CommandButtonControl estende Forms2OleControl diretamente (não MorphDataControl) e tem seu próprio construtor. Representa um botão que executa uma macro quando clicado no Word, com o rótulo do botão exposto através da propriedade herdada Caption.
MorphDataControl: a Base Compartilhada para Controles de Entrada de Dados
MorphDataControl é uma base agregada para seis tipos de controle relacionados — caixa de seleção, caixa de combinação, caixa de lista, botão de opção, caixa de texto e botão de alternância. CheckBoxControl, OptionButtonControl e TextBoxControl cada um a estende, herdando seus membros e adicionando uma propriedade específica de tipo própria.
Dicas e Melhores Práticas
- Leia
Forms2OleControl.Type(um valorForms2OleControlType) para identificar um controle antes de convertê-lo para uma das subclasses específicas — nem todoForms2OleControlé uma das cinco subclasses fortemente tipadas abordadas aqui. - Use
GroupNamepara associar várias instâncias deOptionButtonControlem um conjunto mutuamente exclusivo, correspondendo à forma como o Word agrupa botões de opção. - Acesse controles aninhados dentro de um quadro ou contêiner de várias páginas através do
ChildNodesherdado (umForms2OleControlCollection), independentemente de qual subclasse o contêiner seja.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Fazer cast de um Forms2OleControl para CheckBoxControl lança um InvalidCastException | O controle é de um tipo diferente de controle Forms 2.0 (por exemplo, um TextBoxControl ou OptionButtonControl) | Verifique Forms2OleControl.Type antes de fazer cast para uma subclasse específica |
OptionButtonControl.Selected não se comporta como mutuamente exclusivo com controles irmãos | Os controles não compartilham o mesmo GroupName | Defina o mesmo valor de GroupName em cada OptionButtonControl do conjunto |
CommandButtonControl.Caption está vazio | A legenda do botão vem do Forms2OleControl.Caption herdado, não de uma propriedade específica de CommandButtonControl | Leia Caption, não um membro inexistente exclusivo de CommandButtonControl |
FAQ
Como saber qual classe de controle tipada fortemente um Forms2OleControl realmente é?
Leia sua propriedade Type (Forms2OleControlType) ou tente um cast para a subclasse específica que você espera, como CheckBoxControl ou TextBoxControl.
Qual é a diferença entre MorphDataControl e Forms2OleControl?
Forms2OleControl é a base abstrata para todo controle Forms 2.0. MorphDataControl é uma base abstrata mais específica, que por sua vez estende Forms2OleControl, compartilhada pelos tipos de controle caixa de seleção, caixa de combinação, caixa de lista, botão de opção, caixa de texto e botão de alternância.
Como leio o estado marcado de um controle de caixa de seleção?
Faça o cast do Forms2OleControl para CheckBoxControl e leia sua propriedade Checked.
O CommandButtonControl estende MorphDataControl como os demais?
Não – CommandButtonControl estende Forms2OleControl diretamente, pois um botão de comando não é um controle de entrada de dados.
API Reference Resumo
| Classe | Descrição |
|---|---|
MorphDataControl | Base abstrata para controles de checkbox, combo box, list box, option button, text box e toggle button |
CheckBoxControl | Controle de caixa de seleção; estende MorphDataControl; adiciona Checked |
OptionButtonControl | Controle de botão de opção; estende MorphDataControl; adiciona Selected |
TextBoxControl | Controle de caixa de texto; estende MorphDataControl; adiciona Text |
CommandButtonControl | Controle de botão de comando; estende Forms2OleControl diretamente |