Hej någon som har en aning om hur jag smidigast inaktiverar en TextBox från keypresses? Funkar inte enabled = False? Har för mig att det finns en egenskap på textboxar som fixar det beteendet, tror den heter Lock, Locked eller liknande (Har tyvärr inte tillgång till VB nu). Hej Tänk på att det finns två olika egenskaper som låser kontrollen. Locked = True och Enabled = False. Precis som Johan säger så gör Locked = True det du vill. <code> Man läser dåligt min kod ovan är "overkill" men funkar ;-) "Locket = True" gör inte som jag vill nej. ctrl+c fungerar utmärkt med locked=true. Testa att skapa ett nytt formulär med en ny textbox så att du inte har någon annan property/kod som "förstör" kopieringen. Hej Johan Mycket märkligt, gör jag precis så så fungerar det. Vilken VB-version kör du? Vilken SP-nivå? Sluta tjata Nu ! Jag skulle inte skicka in flera poster om det inte funkade och jag tycker det är konstigt. Är den satt: Hej Robert Handlar det om vb.net så har egenskapen locked inte samma egenskaper som i vb6 locked gör bara att du inte kan flytta kontrollen i designläget och kan inte sättas programmatiskt. Den egenskap du är ute efter heter ReadOnly. Jag menade vilken SP på VB du har. Jag testar med VB6 SP5. VB6 SP6 finns att ladda ner från http://vbnet.mvps.org/files/sp/sp6vb6_en.zip. Något är helsjukt i den här tråden. <b>Inte för att vara helt koko, men var ser man det? :)</b> hittade vad som är fel kör jag programmet genom F5 (alltså i utvecklingsmiljön) så fungerar inte ctrlc (däremot fungerar högerklick->copy vilket jag nämnt tidigare) Har tyvärr ingen aning om varför det uppstår, men alla gånger jag testade och det fungerade körde jag i debug-läge. Kvalificerat "bullshit" han vägrar medge att han är en nolla som gjort bort sig ! Jag hade tidigare inget SP alls och jag installerade nyligen SP6, nu fungerar Locked även då man kör programmet inne i VB-miljön. Så det _HAR_ med SP att göra, tänkte bara informera dig. <b>Så det _HAR_ med SP att göra, tänkte bara informera dig. </b>Disable keypress men INTE ctrl-c
Alla tangenttryckningar utom ctrl-c (kopiera) skall vara inaktiverade.
Vill även att man inte skall kunna högerklicka på markeringen och kunna välja "ta bort".
Just nu har jag keyascii = 0 i händelsen "KeyPress" för textboxen.
Detta påverkar dock bara tangenttryckningar och inte högerklicket ovan.
Någon som har en lösning?Sv: Disable keypress men INTE ctrl-c
Eller kan man inte markera i den alls då?Sv: Disable keypress men INTE ctrl-c
/JohanSv:Disable keypress men INTE ctrl-c
Jo, men den inaktiverar markering totalt.
Och crtl-c funkar då inte heller.Sv: Disable keypress men INTE ctrl-c
ThomasSv:Disable keypress men INTE ctrl-c
Option Explicit
'i Formen General
Dim sText As String
Private Sub Text1_Change()
Text1.Text = sText
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
sText = Text1.Text
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Is = 3 ' tillåt Ctrl + C
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 46 Then KeyCode = 0 'Deleteknappen
End Sub
</code>Sv: Disable keypress men INTE ctrl-c
Text1.Locked fungerar alldeles utmärkt.Sv:Disable keypress men INTE ctrl-c
Ctrl-c fungerar inte med Locked=true.
Går det lösa med något API call eller liknande?Sv: Disable keypress men INTE ctrl-c
/JohanSv:Disable keypress men INTE ctrl-c
Det fungerar inte här.
Hur jag än gör så funkar [ctrl]+c inte. (dock fungerar högerklick och "copy", men det är inte samma sak)
Har skapat ett helt nytt projekt.
Private Sub Form_Load()
Text1.Text = "Detta" & vbCrLf & "är en kopieringsbar text!"
Text1.Locked = True
End Sub
Det är den enda kod som finns.Sv: Disable keypress men INTE ctrl-c
/JohanSv: Disable keypress men INTE ctrl-c
Du gör Text1.Locked = True redan i designläge. Dvs krångla inte med kod.
Nu kan du markera text och köra Ctrl + C
Allt annat är spärrat. Locked är till för just det du vill åstadkomma.Sv:Disable keypress men INTE ctrl-c
Sv: Disable keypress men INTE ctrl-c
<code>
enabled=true
locked=true
</code>
så borde det fungera är den däremot
<code>
enabled =false
locked=true
</code>
fungerar det inteSv:Disable keypress men INTE ctrl-c
Det enda jag ändrat (i properties-fönstret) efter det att jag skapat ett nytt projekt (och lagt till en TextBox) är:
<code>
TextBox1.MultiLine = True
TextBox1.Locked = True
</code>
(Alltså, Enabled är True)Sv: Disable keypress men INTE ctrl-c
<code>
TextBox1.MultiLine = True
TextBox1.ReadOnly = True
</code>Sv: Disable keypress men INTE ctrl-c
/JohanSv: Disable keypress men INTE ctrl-c
ThomasSv:Disable keypress men INTE ctrl-c
Locked funkar för alla utom för Peter.
Problemmet har inte med SP att göra denna funktion
har funkat så här sedan VB 3 tiden.
<b>Gör nu så här och svara oss vad händer.
Starta ett nytt Vb projekt. Lägg ut en Text1 på Formen
Sätt den till Locked = True. Kör programmet.
Nu står det Text1 i textboxen.Markera texten.
Tryck Ctrl+C (Kopiera) .Kolla på lämpligt sätt
Vad finns det i ClipBordet ?</b>Sv: Disable keypress men INTE ctrl-c
Det syns på den splash-screen som visas när du startar VB6 och under Help>About.
Fungerar Ctrl+C om du inte sätter Locked=True?
/JohanSv: Disable keypress men INTE ctrl-c
ctrl-c funkar dock om jag genererar en exe-fil, någon som vet varför detta beteendet uppstår?Sv:Disable keypress men INTE ctrl-c
/JohanSv: Disable keypress men INTE ctrl-c
Stäng tråden och tänk efter om inte frimärkssamling passar dig bättre ! ;-)Sv:Disable keypress men INTE ctrl-c
Tack alla som ägnat sig tid!
Extra tack till Tomas och Johan som informerade om SP!Sv: Disable keypress men INTE ctrl-c
"Bull" LOL