- PR -

ボタンコントロールに関して

投稿者投稿内容
BB
ベテラン
会議室デビュー日: 2005/05/08
投稿数: 52
投稿日時: 2006-05-23 23:19
環境はVS2005になります。

Projectを新規作成し、フォーム上にボタンコントロールを配置して
実行すると、なぜかボタンコントロールの枠に点線がついてしまいます。
(フォーカスがあたっている状態というのでしょうか?)

これを解除する方法はないのでしょうか?
ちなみにフォームにフォーカスを当てれば避けられるのでは?と考え
Form.Focus
としてみたのですが、意味がありませんでした。

アドバイスいただけないでしょうか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-23 23:31
引用:

BBさんの書き込み (2006-05-23 23:19) より:

Projectを新規作成し、フォーム上にボタンコントロールを配置して
実行すると、なぜかボタンコントロールの枠に点線がついてしまいます。
(フォーカスがあたっている状態というのでしょうか?)


そういうものです。

引用:

これを解除する方法はないのでしょうか?
ちなみにフォームにフォーカスを当てれば避けられるのでは?と考え


これはそのボタンにフォーカスを当てたくないということでしょうか
それともフォーカスは受けるけれど、点線のついた描画を止めたいということでしょうか
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-23 23:31
引用:

BBさんの書き込み (2006-05-23 23:19) より:

Projectを新規作成し、フォーム上にボタンコントロールを配置して
実行すると、なぜかボタンコントロールの枠に点線がついてしまいます。
(フォーカスがあたっている状態というのでしょうか?)


はい、正しい動作です。

引用:

これを解除する方法はないのでしょうか?


言語が書かれていませんが、
 [C#] this.ActiveControl = null;
 [VB] Me.ActiveControl = Nothing
では、どうでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
BB
ベテラン
会議室デビュー日: 2005/05/08
投稿数: 52
投稿日時: 2006-05-24 08:52
言語はVBになります。

>じゃんぬねっとさん
 FormLoadにMe.ActiveControl = Nothing
 を加えてみましたができませんでした。

>かるあさん
 フォーカスは受けるけれど、点線のついた描画を止めたい
 をやりたいです。

お願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-24 09:12
引用:

BBさんの書き込み (2006-05-24 08:52) より:

FormLoadにMe.ActiveControl = Nothing
を加えてみましたができませんでした。


# 後から見られる方が誤解されるといけないので、一応書いておきますが、

これは、ご質問を「フォーカスを解除する」という意味だと思ったので回答したものです。
フォーカスを解除する、はこの方法で可能ですよ。(ただし、Load イベントでは不可です)

引用:

フォーカスは受けるけれど、点線のついた描画を止めたいをやりたいです。


Button を継承したクラスにて、ShowFocusCues を常に false で返すようにすれば良いでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-24 09:17
引用:

まどかさんの書き込み (2006-05-24 09:11) より:

どのコントロールかを保存してるだけでしょうから、正常だと思われます。
#というか、フォーカスのあるコントロールがそれだけだから?
#上記をしたことがないので(汗


誤解されないようにと補足投稿した後で、さらに補足するのは恐縮なのですが、これは誤られていると思います。

引用:

BB さんの投稿 (2006-05-24 08:52) より:

FormLoadにMe.ActiveControl = Nothing
を加えてみましたができませんでした。


と、Form の Load イベントで記述してしまっただけだと思います。

引用:

標準の仕様上、矛盾してます。
継承なりしてオーナードローで自力で外観を描画するしかないのかな?


ShowFocusCues で簡単に満たせる仕様ではありますが、
Windows の仕様を無視している、というご意見には同意です。

# 何か投稿消えてますね... orz

[ シグネチャを削除 ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-10-03 08:54 ]
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-05-24 09:53
引用:

これは誤られていると思います。


逆にActiveControl=Text1を考えて、何言ってんだおれ?と気付いて退散させていただきました。。。

引用:

Windows の仕様を無視している、というご意見には同意です。


唯一、そん時にぱんぱんのテキストが改行されるのは勘弁してほしいですがね。

引用:

# 何か投稿消えてますね... orz


某氏のように気付かれずにというのは、お尻の青い私にとってはまだまだ。。。
BB
ベテラン
会議室デビュー日: 2005/05/08
投稿数: 52
投稿日時: 2006-05-24 10:34
じゃんぬねっとさん
誤解を招くような質問で申し訳ございませんでした。

FormActivedにMe.ActiveControl = Nothing
を記述することで対応ができました。

ありがとうございます!

スキルアップ/キャリアアップ(JOB@IT)