Jag har kopplat en UpDown kontroll till en textbox och döpt den till scrlTimes. Problemet är att när scrlTimes når Min/Max värdet vill jag skriva "Infinitivt" i txtTimes, men då får jag ett felmeddelande från scrlTimes (Out of stack memory) eftersom txtTimes är scrlTimes:s BuddyControl och "Infinitivt" inte är ett giltigt värde. Några förslag på hur man löser detta? Hej Tror jag fått det som du vill ha det: Jag kom på en liten fusklösning: när det ska stå infinitivt i textboxen visas en annan textbox istället och när värdet ändras är det bara att byta tillbaks till den ordinarie textboxen.Problem men UpDown kontroll
Så här ser koden ut:
Private Sub scrlTimes_Change()
If scrlTimes.Value < scrlTimes.Min + 1 Then
scrlTimes.Value = 0
txtTimes.Text = "Infinitivt"
End If
If scrlTimes.Value > scrlTimes.Max - 1 Then
scrlTimes.Value = 0
txtTimes.Text = "Infinitivt"
End If
End Sub
/ PeterSv: Problem men UpDown kontroll
Typiskt exempel på hur man kommer in i den binära rymden
Det kallas också okontrollerat rekursivt anrop.
Tänk själv så fort du skriver bokstaven I så anropar du ju
Change Eventet och då körs ju koden som finns i Change.
Du kan lika gärna skriva Peter det blir samma resultat.
Du kan inte ha txtTimes.Text = "Infinitivt" i Change Eventet
Vet inte på rak arm var du skall lägga det kanske i KeyPress Eventet
och skriva If KeyAscii = 13 Then txtTimes.Text = "Infinitivt"
Dvs du får trycka Enter i din txtTimes.Text
Skulle kunna tänka mig
If scrlTimes.Value < scrlTimes.Min + 1 Then
scrlTimes.Value = 0
txtTimes.SetFocus
End If
If scrlTimes.Value > scrlTimes.Max - 1 Then
scrlTimes.Value = 0
txtTimes.SetFocus
End If
Hur som helst du kan inte ha raden txtTimes.Text = "Infinitivt" i Change
mvh
Sven
Sv: Problem men UpDown kontroll
<code>
Private Sub scrlTimes_Change()
If scrlTimes.Value = scrlTimes.Min Then
txtTimes.Text = "Infinitivt"
ElseIf scrlTimes.Value = scrlTimes.Max Then
scrlTimes.Value = scrlTimes.Min
End If
End Sub
</code>Sv: Problem men UpDown kontroll