• ベストアンサー

【プログラミング】ショートカットキーの設定について

KeyPress イベントプロシージャの設定で Private Sub Button1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress If e.KeyChar(Keys.F) Then End If End Sub この中にボタン1の命令をさせたいとき、どのように書けばいいんでしょうか? Visual Basic 2010です コードを教えてください、お願いします

noname#161370
noname#161370

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Button1 上で F キー を押した場合に、Button1 のクリックイベント(Button1 をクリック)を 発生させたい。と言う事でしょうか? それなら、下記を試して見て下さい。 Private Sub Button1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress   '大文字と小文字が区別されますので、どちらの(f or F)キーにも対応   If e.KeyChar = Microsoft.VisualBasic.ChrW(70) Or e.KeyChar = Microsoft.VisualBasic.ChrW(102) Then     '貴方の仕様のとうりにするなら     Button1.PerformClick()  'Button1 をクリック     '本来なら上記の替りにここにカウントアップのコードを書く。     'count += 1     'Label1.Text = count.ToString   End If End Sub '質問内容は、誰にでも理解できるように5W1H を入れて書くなり、箇条書きにやりたい順に 詳しく書くようにして頂かないと他人には伝わりませんよ。

noname#161370
質問者

お礼

回答ありがとうございます。 このコードで考えていた動作をしました。 ありがとうございました。

その他の回答 (2)

回答No.2

>質問内容は、ボタンをクリックすると1ずつカウントアップしていく動作を、 >特定のキーを使い、同じ動作をさせたいだけなんですが Form に Button コントロールとLabel コントロールを貼り付け下記のコードを書いて 試して見て下さい。 Button1 をクリックする度に、Label1 に 1,2,3 カウントアップされた数字が表示されます。 Public Class Form1 Private count As Integer Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click   count += 1   Label1.Text = count.ToString End Sub End Class

noname#161370
質問者

お礼

回答ありがとうございます カウントアップのプログラムは完成しているので、その動作を、例えば、Ctrl + L でボタンをクリックしたのと同じ動作をさせたいので、そちらの回答をいただきたいです。 要望としましては、Ctrlキーを使わないもので、単純にFキーだけで動くものを考えております。

回答No.1

私が勘違いをしているのか? 貴方が勘違いをしているのか? 質問内容を総合して推測すると、Button1 に F のショートカットを作成したいように思えるのですが それなら、Button1 の TEXT プロパティ に あいうえお(&F) と書いて見て試して見て下さい Button1 の 表面が あいうえお(F) のように表示され(F の文字の下にはアンダーバーが表示) F の ショートカットキー で Button1 がクリックされます。

noname#161370
質問者

お礼

回答ありがとうございます 質問内容は、ボタンをクリックすると1ずつカウントアップしていく動作を、特定のキーを使い、同じ動作をさせたいだけなんですが、なにぶん、VBについてよく解っていませんので、コードについては、正しく書けていないと思います。 正しい書き方などありましたら、ご指導ください。

関連するQ&A

  • クラスやモジュールで纏める方法ありますか?

    説明が非常にへたくそなので、プログラムをそのまま書きます・・・・ スイマセン Private Sub TextBox1_2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1_2.KeyPress If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(sender, True, True, True, True) e.Handled = True End If End Sub Private Sub TextBox1_4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1_4.KeyPress If (e.KeyChar < "0"c Or e.KeyChar > "9"c) And e.KeyChar <> vbBack Then e.Handled = True End If If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(sender, True, True, True, True) e.Handled = True End If End Sub Private Sub TextBox1_5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1_5.KeyPress If (e.KeyChar < "0"c Or e.KeyChar > "9"c) And e.KeyChar <> vbBack And e.KeyChar <> ","c Then e.Handled = True End If If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(sender, True, True, True, True) e.Handled = True End If End Sub 上記のプログラム、TextBox○○○_5.KeyPressの○○○の部分が1から100まであるのですが、あまりにも行数が多くなって長くなるので、ほかのクラスやモジュールにまとめる方法ってありませんか? よろしくお願いしますm(__)m

  • VB2005 TextBoxの入力制限について

    はじめて質問させていただきます。 現在、VB2005を使ってプログラムを組んでいるのですが、半角カタカナだけをTextBoxに入力し、表示する方法がわかりません。 Private Sub TextBox6_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox6.KeyDown TextBox6.ImeMode = Windows.Forms.ImeMode.KatakanaHalf End Sub Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then e.Handled = True End If End Sub ↑見にくいかもしれませんがコードです。 この方法ではだめなのでしょうか? 回答をお願いします

  • 特定の文字を、入力文字数に含めない方法は(VB.NET)

    VB.NETにて特定の文字を、入力文字数に含めないようにするにはどのような処理を行ったらよいのでしょうか? 以下は実際に試みた方法です。「型 'TextBox' でパブリック メンバ 'TextLength' が見つかりません。」というエラーがおきました。 Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox.KeyPress 'マイナスかドットであるか判定 If e.KeyChar = "-" OrElse e.KeyChar = "." Then sender.TextLength = sender.TextLength - 1 End If End Sub

  • VisualBasic.NETでのソースの意味がわかりません…。

    Dim misscount As Integer Dim istypemode As Boolean Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim s() As String = New String() {"datemasamune", "sanadayukimura", "tyousokabemototika", "morning", "hyper", "newspaper"} Dim word As String = s(New Random().Next(0, s.GetUpperBound(0) + 1)) Label1.Text = word Label2.Text = "" istypemode = True End Sub Private Sub Form1_keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If istypemode And Not Char.IsControl(e.KeyChar) Then If e.KeyChar = Label1.Text.Chars(Label2.Text.Length) Then Label2.Text &= e.KeyChar End If End If End Sub ------------- 以上のソースがあるのですが、どこでどうなっているというのを教えてほしいです。 もし意味不明な部分とかありましたら教えてください。

  • 数字のみの入力制限をかけたTextBoxで、"."の入力も許可したい

    環境はVB.NETです。 以下のコードで、TextBoxへの入力を、0~9の数字のみ(BackSpaceも許可)に制限していますが、"."(少数点)の入力も許可したいです。 e.KeyChar = "."c の判定をIf文に追加してみましたが、実現できませんでした。 ご教授いただけると幸いです。 よろしくお願いします。 Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress  If (e.KeyChar < "0"c Or e.KeyChar > "9"c) And e.KeyChar <> vbBack Then   e.Handled = True  End If End Sub

  • C#での書き方

    vb.netでは別のイベントを呼び出すとき下記のような書き方ができたのですが、C#ではどう書くんでしょうか? (ボタン2を押したらボタン1の処理が走る) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MessageBox.Show("AAA") End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Button1_Click(sender, e) End Sub

  • VB2013でのプログラム作成でつまづきました

    初めまして ご質問です 会社にて、職場改善のため VB2013でプログラムを作成していますが PCに詳しいのが自分しかいなく、指名されました。。。 もちろん自作PCとか作れるぐらいですが プログラムなんてやったことないし困っています 職場にプログラム専門の方がいるので教育を受けていますが 2.3回教えてもらって  「windowsの電卓を作ろう」と言われました 電卓作成は、初心者用の題材らしいですが とりあえず教えてもらった事を駆使し まずは、テキストボックスとテキストボックスに数字を入れ その二つを +や-ボタンを押し =ボタンを押すと、3つ目のテキストボックスに表示させるという 簡単なプログラムは、なんとかできましたが windowsぽくすると 例 11 + 12 - 9 とテキストに表示され =ボタンを押すと 表示が消え 計算結果が表示されます いまの問題 ・整数と文字列を表示させ、計算だけさせる ・変数宣言、IF、Serectしか教わってない(それだけでできる言われた笑) ・まだ、いまいちわかっていないため 詳しく知りたい 無論、教えてもらったコードをそのまま使いたいわけじゃなく どーいう流れで、どーいう風にというのを理解したいです 結局は自分が理解して、少しずつやらないといけないので 詳しい方、教えてください。 現在なにもできてないコードです ここにどう埋めるか教えてほしいです ------------------------------------------------------------------------------ Option Explicit On Public Class Form Public oboe As String '押されたボタンが数値以外を覚える変数 Public befor As String '押されたボタンが数値の場合 覚える変数 Public anser As Integer ' 計算結果を保存する 変数 Public number As Integer '入力された数値を保存する 変数 Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1 befor = "1" ans.Text &= "1" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '2 befor = "2" ans.Text &= "2" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '3 befor = "3" ans.Text &= "3" End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'たし算 oboe = "+" ans.Text &= "+" number = befor + ans.Text End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click '掛け算 End Sub Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click '計算 End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click 'CLEAR End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click '引き算 End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click '割り算 End Sub Private Sub ans_TextChanged(sender As Object, e As EventArgs) Handles ans.TextChanged

  • Mid関数

    VB6.0とVB.NETのMid関数についてなんですが、例えば.NETで次のように書く時、 Label2.text = "abcdefg" Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If Mid(Label2.Text, z, 1) = e.KeyChar Then   Mid(Label2.Text, z, 1) = " " End if と.NETでは書けるのですが、VB6.0では、まずKeyPressの()の中が違うし、Midの()の中の「Label.Text」を「Label2.Caption」と書くと 「.Caption」のところで「変数が必要です」とエラーが出てしまいます。 これはどういうことなのか、教えてください。

  • VBの記述。サブや関数のコードを束ねる

    VBの記述でsubやfunctionの上の単位でまとめる記述があったように思えますが、久々で思い出せません。 クラスの構成だとかではなくコメントレベルの操作です。 □フォームの操作関係  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load   ' code  End Sub  Private Sub Form1_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed   ' code  End Sub □ボタンの操作関係  Private Sub Button_Close_Click(sender As Object, e As EventArgs) Handles Button_Close.Click   Me.Close()  End Sub  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click   ' code  End Sub サブの頭のところクリックしたら、コードが見えたり隠れたりするように、 記述ブロックの頭のところをクリックすると、記述ブロック全体のコードが見えたり隠れたりしたような。。。 なんというヤツでしたっけ?

  • ↓Downキーでフォーカスの移動ができません。

    ご多忙中申し訳ありません。 TextBoxが複数ありまして、↓キーを使用してフォーカスの移動をタブインデックスに従って変更したいのですが、Enterキーなら順番に移動しますが、Downキーですと何も変化がありません。 Downキーの場合は何か、コードの追加が必要でしょうか? あと、できれば←や↑ →なども使用してフォーカスの移動をしたいとおもいますが アドバイスをお願いします。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True End Sub Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = Chr(Keys.Down) Then  '←ここの部分がEnterキーならフォーカスの移動ができます。 Me.SelectNextControl(Me.ActiveControl, True, True, True, True) e.Handled = True End If End Sub 申し訳ありません。宜しくお願いします。

専門家に質問してみよう