C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: monthcalender操作


(過去ログ 28 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■13556 / inTopicNo.1)  monthcalender操作
  
□投稿者/ しほちゃん☆★ (10回)-(2008/01/31(Thu) 11:50:50)

分類:[VB.NET/VB2005] 

環境 vb2005 windowsアプリを作成しています。

このアプリケーションはマウスを使用しません。

Private Sub calNyukaD_DateSelected(ByVal sender As Object, ByVal e As
        System.Windows.Forms.DateRangeEventArgs) Handles calNyukaD.DateSelected

     Me.txtNyukaD.Text = Format(calNyukaD.SelectionStart, "yyyy/MM/dd")
Utility.onFocusSet(Me.txtKeijyoD)                   ・・・@

End Sub

カレンダーが表示されたときにこのソースだとマウスではtextに値がはいるのですが
→で移動して選択したときに値がはいりません。

private sub   〜  Handles calNukaD.Enter 内に@を書いてもカレンダー自体がselectされません。

@内のselectionstartをselectionendに変えましたが見当違いでした

gogooleでvb2005 monthcalender Enter で検索しましたがそれらしきはものがみつかりません。
なにかヒントをいただけませんか?^^;

引用返信 編集キー/
■13558 / inTopicNo.2)  Re[1]: monthcalender操作
□投稿者/ ダッチ (187回)-(2008/01/31(Thu) 12:33:18)
2008/01/31(Thu) 12:36:23 編集(投稿者)
しほちゃん☆★ さん、こんにちは
ダッチです。

> →で移動して選択したときに値がはいりません。
これはどういうことを言っているのでしょうか?

MonthCalendar(calNyukaD) にフォーカスがあるときに「→」キーを入力したときのことですか?
それとも TextBox にフォーカスがあるときに「→」キーを入力したときのことですか?

新規にフォームを作成して、MonthCalendar と TextBox をフォームに貼り付けて
次のコードを記載すれば、MonthCalendar にフォーカスがある状態でカーソルキー(→など)を入力すれば
TextBox に日付が入りますよ。

    Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
        Me.TextBox1.Text = Me.MonthCalendar1.SelectionStart.ToString
    End Sub

投稿してから気づきました。
DateSelected イベントではなく
DateChanged イベントを使用すればいいのではないでしょうか。

DateSelected イベントは MSDN を見ていただければわかると思いますが、
マウスを使用したときに発生するイベントです。

DateChanged イベントは日付が変わった時に発生するイベントです。

引用返信 編集キー/
■13559 / inTopicNo.3)  Re[2]: monthcalender操作
□投稿者/ しほちゃん☆★ (12回)-(2008/01/31(Thu) 12:55:09)
No13558 (ダッチ さん) に返信
> 2008/01/31(Thu) 12:36:23 編集(投稿者)

タッチさんこんにちわ
早速の書き込みありがとうございます^^

>>→で移動して選択したときに値がはいりません。
> これはどういうことを言っているのでしょうか?

これはカーソルで日付の指定するといゆ意味です。
その状態でエンターを押すので

> MonthCalendar(calNyukaD) にフォーカスがあるときに「→」キーを入力したときのことですか?
> それとも TextBox にフォーカスがあるときに「→」キーを入力したときのことですか?

MonthCalendar(calNyukaD)にカーソルがあるときです。

> Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
> Me.TextBox1.Text = Me.MonthCalendar1.SelectionStart.ToString
> End Sub
>
DateChanged イベントを使用すると一回のカーソル操作で値がはいってしまいます
マウスを使わないでカーソルで指定してenterを押したときに値をいれたいのです。

さきほどはわかりにくいレスでごめんなさい
引用返信 編集キー/
■13560 / inTopicNo.4)  Re[3]: monthcalender操作
□投稿者/ ダッチ (188回)-(2008/01/31(Thu) 13:08:08)
Enter キーを入力したときに TextBox に日付を入れたかったのですね。
であれば MonthCalendar の KeyDown イベントについて調べてみてください。
MonthCalendar にフォーカスがあるときにキーを入力するとイベントが発生します。
そこで Enter キーが入力されたかどうかを判定して、
Enter キーが入力されたときだけ TextBox に日付を入れればいいと思います。

    Private Sub MonthCalendar1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MonthCalendar1.KeyDown
        If e.KeyData = Keys.Enter Then ' ここで Enter キーが入力されたか判定する
            Me.TextBox1.Text = Me.MonthCalendar1.SelectionStart.ToString
        End If
    End Sub

引用返信 編集キー/
■13563 / inTopicNo.5)  Re[4]: monthcalender操作
□投稿者/ しほちゃん☆★ (13回)-(2008/01/31(Thu) 13:46:16)
No13560 (ダッチ さん) に返信


だっちさんありがとうございます。

求めている動きができました。
keydownイベントについて調べてます。

ほんとうにありがとうございました。レベルが低くてごめんなさい ;;)
引用返信 編集キー/
■13568 / inTopicNo.6)  Re[5]: monthcalender操作
□投稿者/ しほちゃん☆★ (14回)-(2008/01/31(Thu) 14:28:49)
No13563 (しほちゃん☆★ さん) に返信
> ■No13560 (ダッチ さん) に返信
>
>
> だっちさんありがとうございます。
>
> 求めている動きができました。
> keydownイベントについて調べてます。
>
> ほんとうにありがとうございました。レベルが低くてごめんなさい ;;)
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -