Jag har två enkla(tror jag) frågor. Hej Underbart, tack Sven, men jag springer på "pumpen". Igen Skulle du inte kunna skriva:<br> Igen >Du har index referensen på fel plats Nu är du allt ute och cycklar SvenPon. Tittar på proceduren: Tack nu fungerar det (det var att sätta default som lyckades). Hej :-)Två frågor,gotfocus och enter.(LÖST)
1.
Kan jag kodvägen kolla på vilken textruta som makören står på?
2.
Kan jag "aktivera" en knapp utan att lämmna fokus?
Tänk er så här:
Jag har fyra textrutor, en för datum, sedan tr resultatsrutor där jag fyller i olika siffror. När jag har fyllt i datum och den första rutan, så skulle jag vilja kunna trycka på enter, som då skulle svara mot knappen, lägg till.
Vad tror ni?Sv: Två frågor,gotfocus och enter.
Fråga 2
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Call Command1_Click
End Sub
Command1 motsvarar din knapp "lägg till"
mvh
SvenSv: Två frågor,gotfocus och enter.
Mina commandoknappar ligger i ett index o till 3.
Jag försöker så här:
If Command2(2).Enabled = True Then
If KeyAscii = 13 Then Call Command2_Click(2)
ElseIf Command2(3).Enabled = True Then
If KeyAscii = 13 Then Call Command2_Click(3)
End If
Ingenting händer.
Några ideér?Sv: Två frågor,gotfocus och enter.
Angående fråga 1 kolla inlägget "Markerad" härunder 9/7 Peter.
DSSv: Två frågor,gotfocus och enter.
<code>
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
Call Command2_Click(Index)
End If
End Sub
</code>
<br>
<br>
<br>
Ett alternativ är att göra knappen till defaultknapp:<br>
<code>
Private Sub Text1_GotFocus(Index As Integer)
Command2(Index).Default = True
End Sub
Private Sub Text1_LostFocus(Index As Integer)
Command2(Index).Default = False
End Sub
</code>
<br>
<br>
Som SvenPon säger finns detta redan upptaget vid ett tidigare tillfälle. Vilket innebär att du får snabbare svar på dinna fråger om du söker på pellesoft innan du ställer frågan. Men jag kan ta det igen:
<code>
If Me.ActiveControl Is Text1(0) Then
Debug.Print "Text1(0) Har focus"
Debug.Print "Text1(1) Har inte focus"
Debug.Print "Text1(2) Har inte focus"
ElseIf Me.ActiveControl Is Text1(1) Then
Debug.Print "Text1(0) Har inte focus"
Debug.Print "Text1(1) Har focus"
Debug.Print "Text1(2) Har inte focus"
ElseIf Me.ActiveControl Is Text1(2) Then
Debug.Print "Text1(0) Har inte focus"
Debug.Print "Text1(1) Har inte focus"
Debug.Print "Text1(2) Har focus"
Else
Debug.Print "Text1(0) Har inte focus"
Debug.Print "Text1(1) Har inte focus"
Debug.Print "Text1(2) Har inte focus"
End If
</code>
Tänk på att inte lägga koden i ett rätt händelse(event). Om du lägger koden i t.ex. en kommandknapps klick event och klickar på den med musen. Kommer den alltid svara att ingen har focus. Eftersom kommandknappen då har focus. Du kan använda koden från t.ex. en meny, timer eller tangentryckning.Sv: Två frågor,gotfocus och enter.
Call Command2_Click(2)
ElseIf Command2(3).Enabled = True Then
If KeyAscii = 13 Then Call Command2_Click(3)
End If
Ingenting händer.
Du har index referensen på fel plats skall vara
If KeyAscii = 13 Then Call Command2(3)_Click
voila dakör ?
SvenSv: Två frågor,gotfocus och enter.
Nej, för satan!
Det är rätt. Subens namn är ju Command2_Click, och det första argumentet är indexet.
/Niklas JanssonSv: Två frågor,gotfocus och enter.
<code>
Private Sub Command2_Click(Index As Integer)
Msgbox "Knapp: " & Index
End Sub
</code>
Anropas ju:
<code>
Command2_Click 0
Command2_Click 1
Command2_Click 3
</code>
Eller:
<code>
Call Command2_Click(0)
Call Command2_Click(1)
Call Command2_Click(3)
</code>Sv: Två frågor,gotfocus och enter.
Innan jag ställde frågan här, så hade jag tillbringat en bra stund med att söka, men det är ju inte alltid lätt, när man inte vet riktigt vad man skall söka på.
Jag menar, lösningen i mitt fall var att laborera med default, men det hade jag aldrig grunnat på att söka efter..
Tack för all hjälpSv: Två frågor,gotfocus och enter.
>Nu är du allt ute och cuklar. Hur gör man när man cuklar ? ;-)
Oki Snabbt och fel
Ds