1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB.NET | Propriedade Enable

Discussão em 'Programação' iniciada por diog0silva, 23 de Abril de 2009. (Respostas: 10; Visualizações: 2430)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Tou a usar uma RichTextBox. Quando ponho a sua propriedade Enable para False, a cor de fundo da caixa fica a cinzento. Não há nenhuma maneira de continuar branco, como as textbox?
     
  2. ByMySlf

    ByMySlf Power Member

    Usa a propriedade ReadOnly.
     
  3. diog0silva

    diog0silva Power Member

    Pois, mas a propriedade ReadOnly, apesar de nao deixar alterar, deixa seleccionar o texto, o que em termos estéticos não gosto muito de ver lol :\ Ninguém conhece outra solução?
     
  4. ribeiro55

    ribeiro55 Power Member

    Sempre podes esconder a RTB, criar um label em Runtime (ou ter previamente um invisível na mesma localização) e quando carregas no tal botao ou wtv, a RTB desaparece e aparece a label.
    Com a label já ninguém selecciona nada.
     
  5. iznougud

    iznougud I quit My Job for Folding

    Enquanto nao aparecer solução melhor podes tentar isto:

    Código:
    
    Sub RichTextBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs ) Handles RichTextBox1.MouseUp
    	 
    	If RichTextBox1.ReadOnly  Then
    		RichTextBox1.SelectionStart = 0
    		RichTextBox1.SelectionLength = 0
    		Me.Focus()
    	End If
    
    End Sub
    
    Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles RichTextBox1.MouseDown 
    	 
    	If RichTextBox1.ReadOnly  Then
    		RichTextBox1.SelectionStart = 0
    		RichTextBox1.SelectionLength = 0
    		Me.Focus()
    	End If
    
    End Sub
    
    Sub RichTextBox1_GotFocus(ByVal sender As Object, ByVal e As EventArgs ) Handles RichTextBox1.GotFocus 
    	 
    	If RichTextBox1.ReadOnly  Then
    		Me.Focus()
    	End If
    	
    End Sub
    
    Quando quiseres fazer disable basta passares a ReadOnly. Isto nao e perfeito, e apenas um conjunto de hacks... De vez em quando ainda se nota o cursor a piscar quando se anda para la a clicar.

    Se quiseres algo visualmente perfeito usa a solução do ribeiro55. Uma label invisivel OnTop da tua RTB que fica visivel/invisivel quando fazes o Enable/Disable da RTB
     
    Última edição: 24 de Abril de 2009
  6. diog0silva

    diog0silva Power Member

    Eu não sei se percebi bem a solução do ribeiro55.

    A RTB que estou a usar está a ir buscar o valor a uma base de dados, a um campo de Observações, daí eu querer usar uma RTB e não uma TextBox normal. No evento Load do form, faço a conexão à base de dados, passo os dados da base de dados para os campos do formulário (umas quantas TextBox e uma RichTextBox), e tranco os campos. Como referi na minha mensagem anterior, o problema é que a propriedade Enable da RichTextBox, ao contrário das TextBox, deixa o fundo da caixa em cinzento :\

    O que eu percebi daquilo que o ribeiro55 disse é que:
    No evento Load, a label fica vísivel e a RTB fica invisivel. Quando carrego no botão "Editar" (que destranca os campos), a label fica invisivel e a RTB fica visivel. A minha questão agora é que, a ideia de usar uma RTB é que o texto do campo, caso ultrapasse uma linha, passa para a linha de baixo. Usando uma label, o texto não passa para a linha de baixo pois não?
     
  7. jpaulino

    jpaulino Power Member


    Agora estou perdido! Usas uma RichTextBox porque queres mais espaço para escrever ?

    Usa antes uma textbox e define a propriedade Multiline como True

    Me.TextBox1.Multiline = True
     
  8. iznougud

    iznougud I quit My Job for Folding

    No 2005, em Vista tive problemas com as textbox multiline, havia situacoes em que nao se via o que la estava...
     
  9. diog0silva

    diog0silva Power Member

    jpaulino, mas tipo, dessa maneira, só passa para a linha de baixo ao carregar no enter.

    Se nunca carregar no enter, ele continua sempre a escrever para a frente e não muda de linha quando chega ao final do espaço.
     
  10. jpaulino

    jpaulino Power Member

    Nunca me aconteceu!

    Já testaste ?
     
  11. diog0silva

    diog0silva Power Member

    afinal deu lol

    obrigado :D
     

Partilhar esta Página