スクロールするには?

解決


よっしー  2003-03-22 23:05:25  No: 106388

こんにちは、テキストボックスに2003をデフォルトでいれスクロールバーで
スクロールさせるには、下記のとおりでいいんでしょうか?

Private Sub VScroll1_KeyDown(KeyCode As Integer, Shift As Integer)
'年フィールドDOWNのボタン
    If Text1.Text < 2002 Then
        MsgBox "2002年以前にはできません", 16, "警告"
        Exit Sub
    End If
    Text1.Text = Text1.Text - 1
End Sub

Private Sub VScroll1_KeyUp(KeyCode As Integer, Shift As Integer)
'年フィールドUPのボタン
    If Text1.Text = 2005 Then
        MsgBox "2005年以降には対応していません", 16, "警告"
        Exit Sub
    End If
    Text1.Text = Text1.Text + 1
End Sub

VScroll_Changeでスクロールのダウンだけだと動きます。


nanashi  2003-03-23 01:01:37  No: 106389

KeyDown、およびKeyUpイベントはオブジェクトに対して
キーボードを押下した時、および離した時のイベントで、スクロールとは一切関係ありません。

Microsoft Windows Common Controls-2 のUpDownコントロールを使ってみては?


Loreley  2003-03-23 05:58:02  No: 106390

VScrollを使うのであれば、
VScrollのMin と Maxを指定してみてはどうでしょう。
いかに2つ(2件にわけて)コードを書いてみます。

フォームにTextBoxとVscrollコントロールをひとつずつ配置。
初期値
TextBox.Text="2003"
Vscroll1.Min=2003
Vscroll1.Max=2004

'コードここから
Private Sub VScroll1_Change()
Text1.Text = VScroll1.Value

End Sub

'以上。


Loreley  2003-03-23 06:05:13  No: 106391

エラーが必要な場合は
TextBox.Text="2003"

'コードここから
Const VScrollMin = 2002
Const VScrollMax = 2005

Private Sub Form_Load()
   VScroll1.Min=VScrollMin
   VScroll1.Max=VScrollMax
   VScroll1.Value=2003
End Sub

Private Sub VScroll1_Change()
   select case VScroll1.Value
   case VScrollMin
      MsgBox CStr(VScrollMin) & "以前には対応していません", 16, "警告"
      VScroll1.Value=VScrollMin
   case VScrollMax
      MsgBox CStr(VScrollMax) & "以降には対応していません", 16, "警告"
      VScroll1.Value=VScrollMax
   case Else
      'エラー時に値を変更させないならここにText1.Text = VScroll1.Value
      'をおくなど適宜変更してください
   end Select
      Text1.Text = VScroll1.Value
End Sub

こんな感じでしょうか。


よっしー  2003-03-23 11:19:03  No: 106392

ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加