フォーカスの判定

タグの編集
投稿者 C#2ヶ月の人  (社会人) 投稿日時 2009/1/21 02:18:11
お世話になります。
現在物凄く簡単な事で判らず困っています。

VB6.0で作成しています。
コマンドボタンを数個用意し、ボタンがフォーカスされている物に対して、
テキストの文字を太くするという簡単な方法が判らずに困っています。
モジュールを利用するのか、何も無しで行うのかも正直わかっていません。

現在行おうとしたことは、KeyDownを使用して、ボタンを押されたときにフォーカスの位置を
常に判定してフォーカス判定がtrueのボタンに対して常にFontBoldを
行ったらいいと思ったのですが、キーボードからの十字キーの判定が
KeyDownで判定してくれません。

どうすればいいのかわからないので、もしよければ皆さんのお知恵をお借りしたいと
思います。

宜しくお願いいたします。

以下コードを貼り付けておきます。


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'文字を太くする処理  Command1.FontBold = true
End Sub
投稿者 ヴァン  (社会人) 投稿日時 2009/1/21 02:28:55
ボタンのイベントの[Enter]と[Leave]は如何でしょうか?
投稿者 C#の人  (社会人) 投稿日時 2009/1/21 02:31:36
Leaveというのが何を指すかが判りませんが、
Enterはそのままボタンのイベントを実行してしまいます。
投稿者 neptune  (社会人) 投稿日時 2009/1/21 02:47:30
どうもよく判らんのですが、
C#で出来るのならC#で同様のロジックを書いてUPしてみては?
VB6への書き換えのアドバイスをもらえますよ。
投稿者 刈谷勇  (社会人) 投稿日時 2009/1/21 03:03:19
ヴァンさん
>ボタンのイベントの[Enter]と[Leave]は如何でしょうか?
.NETですよね(^^;
VB6ではGotFocusとLostFocusがそれにあたります。

C#の人さん
>Enterはそのままボタンのイベントを実行してしまいます。
VB6のコマンドボタンにEnterイベントってありましたっけ?
VB6ではGotFocusとLostFocusを使えば可能です。


投稿者 C#  (社会人) 投稿日時 2009/1/21 03:07:41
すいません、C#で書きたかったのですが、ちょっと判らないです・・・。
判りづらい説明で申し訳御座いません。

やりたい事としては、複数あるボタンのうちフォーカスされているボタンは
目立ちやすいようにテキストの文字を太くする、という感じです。

まだ判りづらい説明かもしれませんが、どうか宜しくお願いいたします。
投稿者 C#  (社会人) 投稿日時 2009/1/21 03:14:13
刈谷勇さん
EnterとはEnterキー押下時のことかと勝手に解釈していました。
投稿者 neptune  (社会人) 投稿日時 2009/1/21 03:26:23
Form上にCommandを3個配置
面倒だけど一番基本的な奴。


Option Explicit

Private Sub Command1_GotFocus()
    Command1.FontBold = True
End Sub

Private Sub Command1_LostFocus()
    Command1.FontBold = False
End Sub

Private Sub Command2_GotFocus()
    Command2.FontBold = True
End Sub

Private Sub Command2_LostFocus()
    Command2.FontBold = False
End Sub

Private Sub Command3_GotFocus()
    Command3.FontBold = True
End Sub

Private Sub Command3_LostFocus()
    Command3.FontBold = False
End Sub
投稿者 C#  (社会人) 投稿日時 2009/1/21 03:39:13
有難う御座いました。
おかげで完成する事が出来ました。
また、何かわからない事がありましたら宜しくお願いいたします。

答えて頂いた皆様有難う御座いました。
投稿者 C#  (社会人) 投稿日時 2009/1/21 19:02:46
申し訳御座いません。
参考になるコードを書いて頂いてとても助かったのですが、
このコードを利用して、モジュールを作成しようとしてるのですが、
エラーになってしまいます。

書き方自体も判ってない状態なので何とも言えないのですが、
もしモジュールで書くとしたらどのような具合になるのでしょうか?

色々調べているのですが、情報量が少なく応用出来なくて本当に困っています。
もし宜しければ教えて頂けると幸いです。
投稿者 るしぇ  (社会人) 投稿日時 2009/1/21 20:24:16
> このコードを利用して、モジュールを作成しようとしてるのですが、
http://jeanne.wankuma.com/tips/vb6/textbox/onfocusselectall.html
とか。

処理を共通化したいなら、コントロール配列にすれば良いのでは?
[Visual Basic 中学校 > VB6 テクニック > 10.イベントの共有]
http://homepage1.nifty.com/rucio/main/technique/ShareEvent.htm
投稿者 C#  (社会人) 投稿日時 2009/1/21 20:58:09
返信有難う御座います。
紹介して頂いたページを元にもう少し調べてみたいと思います。

初心者の質問に答えて頂いて有難う御座いました。
投稿者 ヴァン  (社会人) 投稿日時 2009/1/21 21:39:14
ガーン!
最近は.NETな人なので.NETで書いてしまった。(^^;

で、C#なのVB6なの?
投稿者 C#  (社会人) 投稿日時 2009/1/21 22:04:30
最初の質問のときにVB6.0と一応記入していたのですが、
文章の中に入っていて、見づらかったかもしれません。
次からは、見やすいように区切って書いていこうかと思います。