tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルF1キーを使用してイベントを発生
記事No9372
投稿日: 2009/09/09(Wed) 10:52
投稿者ひで
VB2008を使用しています。

F1キーが押されると、Textbox1.textに文字を
表示させたいと思うのですが、どうしたらいいか分かりません。

Buttonなら、記入すれば文字は表示される方法は分かるのですが・・・

素人的な質問なのかも知れませんが、
ご教授の程よろしくお願いします。

[ツリー表示へ]
タイトルRe: F1キーを使用してイベントを発生
記事No9374
投稿日: 2009/09/09(Wed) 12:51
投稿者るしぇ


タイトル通りで良いのでは?
キーボードを押された時のイベントが用意されていますよね?
Button のイベントを利用する時と同様と思います。

何が分かっていて、何が分からないのかがこちらに
伝わりませんので
> Buttonなら、記入すれば文字は表示される方法は分かる
を参考にして(例にあげて)
・どういう結果を期待して
・どういう操作(またはプログラム)をしたが
・どういう結果であり、期待とここが違う
・分かるなら、その原因の検証結果も
といった説明をしたほうが良いのでは?

[ツリー表示へ]
タイトルRe: F1キーを使用してイベントを発生
記事No9375
投稿日: 2009/09/09(Wed) 13:40
投稿者VB
こんなイメージですかね?

    Private Sub Form1_KeyDown(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        On Error Resume Next
        Dim KeyCode As Short = eventArgs.KeyCode
        If KeyCode = System.Windows.Forms.Keys.F12 Then
                Textbox1.text = "???"
                'または
        'Button1_Click(Button1, New System.EventArgs())
        End If
    End Sub

[ツリー表示へ]
タイトルRe^2: F1キーを使用してイベントを発生
記事No9377
投稿日: 2009/09/09(Wed) 15:03
投稿者ひで
>     Private Sub Form1_KeyDown(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
>         On Error Resume Next
>         Dim KeyCode As Short = eventArgs.KeyCode
>         If KeyCode = System.Windows.Forms.Keys.F12 Then
>                 Textbox1.text = "???"
>                 'または
>         'Button1_Click(Button1, New System.EventArgs())
>         End If
>     End Sub

お返事有難うございます。
早速、Form1にTextbox1.textを作り、やってみました。
しかし、F12を押しても一向に「???」が表示されません。
※一応F1〜F12まで押しました。

自分でも打った後、打ち間違えもあると困るので、コピーして貼付けしても
表示されません。

再度、ご教授の程よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: F1キーを使用してイベントを発生
記事No9378
投稿日: 2009/09/09(Wed) 15:39
投稿者Hongliang
Form の KeyPreview プロパティが False の場合、各コントロールがキーイベントを独自に処理するため、Form の KeyDown イベントは発生しません。
F12 押下による TextBox へのテキスト挿入が、そのフォーム表示中常に行われるのが望ましいのなら、KeyPreview を True にして Form の KeyDown イベントで処理する(今の構造ですね)のがいいでしょう。
特定のコントロールにおける入力の時だけなら、そのコントロールの KeyDown イベントでテキスト挿入を行います。

[ツリー表示へ]
タイトルRe^3: F1キーを使用してイベントを発生
記事No9379
投稿日: 2009/09/09(Wed) 15:39
投稿者VB
> >     Private Sub Form1_KeyDown(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
> >         On Error Resume Next
> >         Dim KeyCode As Short = eventArgs.KeyCode
> >         If KeyCode = System.Windows.Forms.Keys.F12 Then
> >                 Textbox1.text = "???"
> >                 'または
> >         'Button1_Click(Button1, New System.EventArgs())
> >         End If
> >     End Sub
>
> お返事有難うございます。
> 早速、Form1にTextbox1.textを作り、やってみました。
> しかし、F12を押しても一向に「???」が表示されません。
> ※一応F1〜F12まで押しました。
>
> 自分でも打った後、打ち間違えもあると困るので、コピーして貼付けしても
> 表示されません。
>
> 再度、ご教授の程よろしくお願いします。

フォームのプロパティに
KeyPreviewと言う項目があるので、Trueにしてください。

[ツリー表示へ]
タイトルRe^4: F1キーを使用してイベントを発生
記事No9385
投稿日: 2009/09/10(Thu) 15:46
投稿者ひで
> フォームのプロパティに
> KeyPreviewと言う項目があるので、Trueにしてください。

返事が遅くなりました。
うまくいきました。

有難うございます。

[ツリー表示へ]