Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Douglas Dantas

Problemas ao criar Bloco de notas

Recommended Posts

Olá IMasters!

 

Estou começando agora com .NET, mais precisamente com C#, e estou criando um simples bloco de notas em Windows Presentation Forms.

 

Além da RichTextBox, eu só encontrei nos controles o TextBox, e foi ele que usei para editor e dei o nome de "texto". Porém ele naturalmente não aceita <ENTER>.

 

Entao adicionei um evento e toda vez que se pressiona enter ele concatena à texto.Text o retorno e carro, "\n", pulando uma linha.

 

Acontece que o programa não faz o esperado, ficando o cursor na mesma linha e tendo que apertar a tecla down para descer para a nova linha. Esse é o código que reconhece a tecla <ENTER>:

 

private void OnKeyDownHandler(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Return)
                texto.Text += "\n";
        }

Peço a ajuda de vocês nisso. Pode parecer bobo, mas estou começando agora. Segue a solução do bloco de notas.

 

https://docs.google.com/file/d/0B2cA11bPc9S7Y3ZIWUtVcDhyM3c/edit?usp=sharing

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No textbox, coloque a propriedade "AcceptsReturn" com o valor "True". Assim ele passará a aceitar quebra de linha (ENTER).

Daí imagino que você pode remover esse código para concatenar o "\n".

 

<TextBox x:Name="texto" HorizontalAlignment="Left" Height="271" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Width="517" VerticalScrollBarVisibility="Auto" TextChanged="textoMod" KeyDown="OnKeyDownHandler" Cursor="None" AcceptsReturn="True"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução do Pedro funciona, mas vou responder porque não está funcionando no seu.

 

No .NET a quebra de linha não é \n e sim Environment.NewLine, é uma propriedade de classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado aos dois, principalmente ao Pedro. Eu imaginava que devia haver uma propriedade que fizesse aceitar quebra de linha. Até procurei na internet, e não achei. E obrigado também KhaosDoctor, eu venho do C/C++ e imaginava que \n quebraria a linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é. Eu pesquisei sobre o Dock Fill, mas descobri que ele é pra windows forms. Eu procurei um equivalente pra WPF, e vi sobre o stretch , no Alinhamento Horizontal e Vertical. Depois retirei a altura e largura dos componentes. Porem não serviu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Khaos, mas na verdade se chama ChangedSize. Consegui fazer com que toda vez que o programa mude de tamanho os controles recalculem seus tamanhos baseados no tamanho atual da janela.

 

O último problema, pra fechar, é esse:

 

Quando adiciono um ícone a algum item do menu ou num controle de imagem, no visual studio aparece, mas quando compilo e executo o programa não, apenas um espaço em branco. O que poderia ocasionar isso? Verifiquei no google e achei pouca coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.