pmsmc Posted October 15, 2009 at 10:36 PM Report Share #291842 Posted October 15, 2009 at 10:36 PM Pessoal, Tenho um projecto em VB2008, na empresa em que trabalho, mas estou encravado no seguinte: Necessito de fazer com que uma Caixa de RTF, faça o scroll do conteúdo programaticamente. Por exemplo, quando se prime Page Up ou Page Down, a janela faz um scroll. agora, como seria possível fazer isso mas com programação. Ou seja, por exemplo um evento como um RichTextBox1.Sendkeys.Key {PGUP} Haverá alguma maneira de fazer isto !!??? Link to comment Share on other sites More sharing options...
ribeiro55 Posted October 15, 2009 at 10:42 PM Report Share #291844 Posted October 15, 2009 at 10:42 PM Olá e bem-vindo! Então não há? Uma das abordagens até é precisamente o que sugeriste... se bem que com uma ligeira alteração. Ora exprimenta lá: RichTextBox1.Focus() SendKeys.Send("{PGDN}") Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
pmsmc Posted October 16, 2009 at 10:15 AM Author Report Share #291872 Posted October 16, 2009 at 10:15 AM Caro Sérgio, quase que dava, mas eu quero é ao clickar na parte superior da caixa, faça um scroll up e na parte de baixo um scroll down. mas nao funciona 🙂 Se usar uma rotina externa para fazer o sendkeys, funciona, mas dentro da rotina interna, não. Private Sub caixa_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Select Case e.X Case Is < caixa.Height / 2 SendKeys.Send("{PGUP}") Case Is > caixa.Height / 2 SendKeys.Send("{PGDN}") End Select End Sub Link to comment Share on other sites More sharing options...
softklin Posted October 16, 2009 at 10:28 AM Report Share #291875 Posted October 16, 2009 at 10:28 AM E aplicando o focus na caixa, como o ribeiro sugeriu, experimentaste? Embora o controlo deveria ganhar o focus quando clicado, isso pode não estar a acontecer, ou pode apenas estar a dar o focus depois do clique. Private Sub caixa_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) ' damos focus à caixa caixa.focus() Select Case e.X Case Is < caixa.Height / 2 SendKeys.Send("{PGUP}") Case Is > caixa.Height / 2 SendKeys.Send("{PGDN}") End Select End Sub Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
pmsmc Posted October 16, 2009 at 10:36 AM Author Report Share #291878 Posted October 16, 2009 at 10:36 AM nem mesmo assim. Mas se conseguir colocar uma picturebox por cima da caixa de rtf e faze-la transparente, dou a volta á coisa. a gaita é que mesmo com o backcolor em Tansparent fica sempre opaca Link to comment Share on other sites More sharing options...
pmsmc Posted October 16, 2009 at 11:10 AM Author Report Share #291884 Posted October 16, 2009 at 11:10 AM Já funciona. e não era o X mas o Y que pretendia, lol tenho de por uma pedra no meu eixo dos X 🙂 Dim mouseposition, Halfbox As Integer mouseposition = e.Y Halfbox = caixa.Height / 2 Select Case mouseposition Case Is < Halfbox 'MsgBox("UP" & vbNewLine & "HALF:" & Halfbox & vbNewLine & "MOUSE:" & mouseposition) SendKeys.Send("{PGUP}") Case Is > Halfbox SendKeys.Send("{PGDN}") 'MsgBox("DOWN" & vbNewLine & "HALF:" & Halfbox & vbNewLine & "MOUSE:" & mouseposition) End Select Obrigado a Todos de qualquer modo Link to comment Share on other sites More sharing options...
ribeiro55 Posted October 16, 2009 at 11:20 AM Report Share #291886 Posted October 16, 2009 at 11:20 AM Tinha de ser uma banhada assim. Focada já ela estava, por causa do MouseClick. Já se tomam os eixos por certos, nem reparámos que estavas a controlar o eixo errado Um aparte: Fecha os teus blocos de código VBNET entre as tags: [code=vbnet][ /code] (sem o espaço antes da barra) Desta forma, o código vai aparecer colorido, como no interpretador, e como tal muito mais fácil e agradável de ler. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
jpaulino Posted October 16, 2009 at 10:33 PM Report Share #291989 Posted October 16, 2009 at 10:33 PM Não entendi a ideia! Podes explicar melhor ? Link to comment Share on other sites More sharing options...
ribeiro55 Posted October 16, 2009 at 10:46 PM Report Share #291993 Posted October 16, 2009 at 10:46 PM A ideia era dividir virtualmente uma RichTextBox em duas regiões norte e sul. Depois, no MouseClick detecta-se se o clique foi feito na região norte ou sul. Se o clique tivesse sido feito na região norte, forçava um scroll para cima, se o clique fosse na região sul, forçava um scroll para baixo. É uma abordagem interessante, e melhor seria se pudessemos controlar exactamente (e de uma maneira fácil) a posição vertical da scrollbar. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now