Usuário com melhor resposta
Como fazer usar a função .InsertSymbol em um projeto VSTO

Pergunta
-
Estou com problemas quando estou tentando inserir dentro de uma célula da segunda tabela do meu template um caractere do Wingdings 2, o problema é que seguindo alguns foruns no máximo quando eu consigo inserir ele, ele aparece na primeira tabela , acredito que tem algo haver com uma propriedade de seleção mas não estou entendendo direito:
ex:
this.Tables[2].Cell(1, 1).Range.InsertSymbol(152, "Wingdings 2", true, Word.WdFontBias.wdFontBiasDefault);
aparece uma exceção
Este método ou propriedade não está disponível porque o objeto não se refere a um intervalo ou seleção simples.
mas se eu tento setar assim como é explicado em alguns fóruns :
Word.Selection selection = this.Tables[2].Cell(1,1).Application.Selection;
selection.SetRange(1, 1);
selection.InsertSymbol(152, "Wingdings 2", true, Word.WdFontBias.wdFontBiasDefault);
o simbolo é inserido porém na célula (1,2) da tabela, eu acho que tem haver com esse ranger eu não estou sabendo setar direito , uma ajuda ai por favor ^^.
- Movido AndreAlvesLima domingo, 14 de agosto de 2011 02:24 (De:.NET Development - Geral)
Respostas
-
Bem como aqui no Brasil ninguém respondeu e eu com um amigo de fora conseguir a solução vou postar ela caso alguém que não tenha habilidades com inglês venha ter o mesmo problema.
O ranger da célula que contém as estruturas celulares, além do texto da célula. Se você trabalha com uma tabela na UI esta é justamente a diferença entre clicar na borda da esquerda de uma célula (onde a célula inteira será selecionada) e pressionar TAB para inserir na célula (onde somente o texto é selecionado). Se a célula inteira for selecionada e você pressionar a tecla da seta para a esquerda, você começa um cursor intermitente ou, se a célula contiver texto, segurando a tecla Shift e pressionando a seta para a esquerda somente o texto é selecionado, não que toda a célula.
A fim de obter esse estado usando o objeto Range você tem um número de possibilidades. O que eu costumo usar é
Word.Range rngTable this.Tables = [2]. Celular (1, 1) Range.;
objeto oCollapseStart = Word.WdCollapseDirection.wdCollapseStart;
rngTable.Collapse (ref oCollapseStart);
rngTable.InsertSymbol (152, "Wingdings 2", é verdade, Word.WdFontBias.wdFontBiasDefault);
que é o equivalente a pressionar a seta para a esquerda, quando a célula inteira será selecionada.
-------------------------------------------------- ------------------------------Respondido por :
Cindy Meister, VSTO / Word MVP- Marcado como Resposta Drinith quarta-feira, 31 de agosto de 2011 15:54
Todas as Respostas
-
I'm having problems when I'm trying to insert into a second cell of a table of my template 's Wingdings 2 character, the problem is that following some forums when I get up to insert it, it appears in the first table, I believe it has something to do with a selected property I do not understand right:
eg
this.Tables [ 2 ]. Cell (1, 1). Range.InsertSymbol (152, " Wingdings 2 ", true, Word.WdFontBias.wdFontBiasDefault );
appears an exception
This method or property is not available because the object does not refer to a range or selection simple.
but if I try to set as it is explained in some forums:
Word.Selection this.Tables selection = [ 2 ]. Cell (1,1). Application.Selection;
selection.SetRange (1, 1);
selection.InsertSymbol (152, " Wingdings 2 ", true, Word.WdFontBias.wdFontBiasDefault );
But the symbol is inserted in cell ( 1,2) table, I think this has to do with knowing I'm not grinding set right, help please ^ ^ .- Mesclado AndreAlvesLima terça-feira, 16 de agosto de 2011 21:07 duplicado
-
Olá,
Por favor, pedimos para que sejam postadas somente dúvidas em português nos fóruns da MSDN em PT-BR... Se puder traduzir para que os membros do fórum possam continuar a discussão seria ótimo...
Obrigado pelo apoio...
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Prezado(a),Estou migrando seu post para o fórum de VSTO.Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.Obrigado.
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Bem como aqui no Brasil ninguém respondeu e eu com um amigo de fora conseguir a solução vou postar ela caso alguém que não tenha habilidades com inglês venha ter o mesmo problema.
O ranger da célula que contém as estruturas celulares, além do texto da célula. Se você trabalha com uma tabela na UI esta é justamente a diferença entre clicar na borda da esquerda de uma célula (onde a célula inteira será selecionada) e pressionar TAB para inserir na célula (onde somente o texto é selecionado). Se a célula inteira for selecionada e você pressionar a tecla da seta para a esquerda, você começa um cursor intermitente ou, se a célula contiver texto, segurando a tecla Shift e pressionando a seta para a esquerda somente o texto é selecionado, não que toda a célula.
A fim de obter esse estado usando o objeto Range você tem um número de possibilidades. O que eu costumo usar é
Word.Range rngTable this.Tables = [2]. Celular (1, 1) Range.;
objeto oCollapseStart = Word.WdCollapseDirection.wdCollapseStart;
rngTable.Collapse (ref oCollapseStart);
rngTable.InsertSymbol (152, "Wingdings 2", é verdade, Word.WdFontBias.wdFontBiasDefault);
que é o equivalente a pressionar a seta para a esquerda, quando a célula inteira será selecionada.
-------------------------------------------------- ------------------------------Respondido por :
Cindy Meister, VSTO / Word MVP- Marcado como Resposta Drinith quarta-feira, 31 de agosto de 2011 15:54