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

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

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

Re[3]: ComboBoxの項目時のMouseLeaveについて


(過去ログ 85 を表示中)

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

■50750 / inTopicNo.1)  ComboBoxの項目時のMouseLeaveについて
  
□投稿者/ K (1回)-(2010/06/17(Thu) 09:55:47)

分類:[VB.NET/VB2005 以降] 

VB2010でプログラミングをしております。
検索でどうしても解決策が見付からなかったので質問させて頂きます。

ComboBoxのMouseEnter/MouseLeaveイベントを用いて、
マウスカーソルが重なっている間だけLabelに説明文が表示されるプログラムを作成しました。
ですが、マウスでComboBoxの項目を選択した際にMouseLeaveイベントが発動しないため、
マウスカーソルが離れているにも係わらず説明文が表示されたままになってしまいます。
また、その後の初回のみMouseEnterイベントも発動しません。

上記を回避する策をご教示頂きたく存じます。
(強制的にMouseLeaveイベントを発動させるような。)
宜しくお願い致します。
引用返信 編集キー/
■50751 / inTopicNo.2)  Re[1]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ chobi (8回)-(2010/06/17(Thu) 10:58:12)
No50750 (K さん) に返信
>
> ComboBoxのMouseEnter/MouseLeaveイベントを用いて、
> マウスカーソルが重なっている間だけLabelに説明文が表示されるプログラムを作成しました。
> ですが、マウスでComboBoxの項目を選択した際にMouseLeaveイベントが発動しないため、
> マウスカーソルが離れているにも係わらず説明文が表示されたままになってしまいます。
> また、その後の初回のみMouseEnterイベントも発動しません。
>
> 上記を回避する策をご教示頂きたく存じます。
> (強制的にMouseLeaveイベントを発動させるような。)
> 宜しくお願い致します。

ツールチップオブジェクト.SetToolTip(ComboBox, "message");
とすれば、イベントに関係なくマウスカーソルが重なったときだけ"message"が表示されます。
第一引数:関連付けるcontrol
第二引数:表示されるメッセージ
これでは駄目ですか?
引用返信 編集キー/
■50752 / inTopicNo.3)  Re[2]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (2回)-(2010/06/17(Thu) 11:06:14)
No50751 (chobi さん) に返信
> ツールチップオブジェクト.SetToolTip(ComboBox, "message");
> とすれば、イベントに関係なくマウスカーソルが重なったときだけ"message"が表示されます。
> 第一引数:関連付けるcontrol
> 第二引数:表示されるメッセージ
> これでは駄目ですか?

ご回答有り難う御座います。
ToolTipも検討致しましたが、説明文が長文のためLabelの実装としております。
他にも良案が御座いましたらお聞かせ下さい。
引用返信 編集キー/
■50753 / inTopicNo.4)  Re[3]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (26回)-(2010/06/17(Thu) 11:16:31)
ComboBoxにAutoPostBackはダメですか?
引用返信 編集キー/
■50754 / inTopicNo.5)  Re[1]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ みきぬ (924回)-(2010/06/17(Thu) 11:38:19)
# Windows Form だよね?

No50750 (K さん) に返信
> ComboBoxのMouseEnter/MouseLeaveイベントを用いて、
> マウスカーソルが重なっている間だけLabelに説明文が表示されるプログラムを作成しました。
> ですが、マウスでComboBoxの項目を選択した際にMouseLeaveイベントが発動しないため、
> マウスカーソルが離れているにも係わらず説明文が表示されたままになってしまいます。
> また、その後の初回のみMouseEnterイベントも発動しません。
>
ついでに言うと、キーボードで操作したときも同じことになるけど。

Enter / Leave のほうがいいんじゃないかしら。
引用返信 編集キー/
■50756 / inTopicNo.6)  Re[2]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (27回)-(2010/06/17(Thu) 12:09:46)
No50754 (みきぬ さん) に返信
> # Windows Form だよね?
>
そうですね。すみません。

>マウスでComboBoxの項目を選択した際にMouseLeaveイベントが発動しないため、
>マウスカーソルが離れているにも係わらず説明文が表示されたままになってしまいます。
ここはSelectedIndexChangedイベントで対応したらいかがでしょうか?


引用返信 編集キー/
■50757 / inTopicNo.7)  Re[2]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (3回)-(2010/06/17(Thu) 12:15:14)
No50754 (みきぬ さん) に返信
> ついでに言うと、キーボードで操作したときも同じことになるけど。
>
> Enter / Leave のほうがいいんじゃないかしら。
キーボードでの操作を失念しておりました。
有り難う御座います。
Enter/Leaveを追加し、キーボードでの操作は問題ないことを確認致しました。
残るは表題の問題のみです。。。


引用返信 編集キー/
■50758 / inTopicNo.8)  Re[3]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (4回)-(2010/06/17(Thu) 12:19:44)
No50756 (マサヤ さん) に返信
> ここはSelectedIndexChangedイベントで対応したらいかがでしょうか?
そうですね、MouseLeaveイベントが発動しないこと自体は上記で回避しているのですが、
私が困っているのはその後の初回のみMouseEnterイベントが発動しないことなのです。
(SelectedIndexChangedで一旦説明文をクリアしても、その後のMouseEnterで説明文が表示されない。)
これは不可避なのでしょうか??
引用返信 編集キー/
■50759 / inTopicNo.9)  Re[3]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (28回)-(2010/06/17(Thu) 14:10:39)
No50757 (K さん) に返信
> ■No50754 (みきぬ さん) に返信
>>ついでに言うと、キーボードで操作したときも同じことになるけど。
>>
>>Enter / Leave のほうがいいんじゃないかしら。
> キーボードでの操作を失念しておりました。
> 有り難う御座います。
> Enter/Leaveを追加し、キーボードでの操作は問題ないことを確認致しました。
> 残るは表題の問題のみです。。。

ComboBoxにて選択後に、フォーカスがComboBoxに残っているからではないでしょうか?
SelectedIndexChangedで強制的にフォーカスを次のTabIndexなどに移動させたらうまくいかないでしょうか?

引用返信 編集キー/
■50761 / inTopicNo.10)  Re[4]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (5回)-(2010/06/17(Thu) 14:32:02)
No50759 (マサヤ さん) に返信
> ComboBoxにて選択後に、フォーカスがComboBoxに残っているからではないでしょうか?
> SelectedIndexChangedで強制的にフォーカスを次のTabIndexなどに移動させたらうまくいかないでしょうか?
強制的にフォーカスを遷移させても駄目でした。
何とかしてMouseLeaveを強制認識させるかMouse系イベントをリセットする手法があれば良いのですが。。。

念のため、状況を下記に整理致します。
--------------------------------
1.マウスカーソルをコンボボックスに合わせる。
  ⇒MouseEnter発動。Labelに説明文を表示。
2.マウスでコンボボックスの任意の項目を選択。
  ⇒マウスカーソルはコンボボックスから外れているがMouseLeave発動せず。
   ☆SelectedIndexChanged等でLabel制御は可能。
3.再びマウスカーソルをコンボボックスに合わせる。
  ⇒★MouseEnter発動せず。ここを何とかしたい。
4.一度マウスカーソルをコンボボックスから外し、再び合わせる。
  ⇒MouseEnter発動。
--------------------------------
引用返信 編集キー/
■50763 / inTopicNo.11)  Re[5]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (29回)-(2010/06/17(Thu) 14:57:22)
>強制的にフォーカスを遷移させても駄目でした。
自分の環境ではうまくいったのですが、Labelの表示/非表示はvisibleですよね?
引用返信 編集キー/
■50765 / inTopicNo.12)  Re[6]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (6回)-(2010/06/17(Thu) 15:39:54)
No50763 (マサヤ さん) に返信
> 自分の環境ではうまくいったのですが、Labelの表示/非表示はvisibleですよね?
重ね重ね有り難う御座います。
LabelはVisibleです。

お手数ですが、マサヤ様がどのように実装されているかご教示願えますか?
引用返信 編集キー/
■50767 / inTopicNo.13)  Re[7]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (31回)-(2010/06/17(Thu) 16:02:38)
c#ですいませんが、こんな感じです。

初期値はlabel1.Visible = false
private void comboBox1_MouseEnter(object sender, EventArgs e)
{
label1.Visible = true;
label1.Text = "AAA";
}

private void comboBox1_MouseLeave(object sender, EventArgs e)
{
label1.Visible = false;
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Visible = false;
textBox1.Focus();
}
引用返信 編集キー/
■50768 / inTopicNo.14)  Re[8]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (7回)-(2010/06/17(Thu) 16:06:44)
No50767 (マサヤ さん) に返信

有り難う御座います。
私も同様の実装にしております。

マサヤ様の環境では下記の手順3でLabel表示が行われますか?
--------------------------------
1.マウスカーソルをコンボボックスに合わせる。
2.マウスでコンボボックスの任意の項目を選択。
  ⇒この時、マウスカーソルはコンボボックスから外れている状態。
3.再びマウスカーソルをコンボボックスに合わせる。
--------------------------------
引用返信 編集キー/
■50770 / inTopicNo.15)  Re[9]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (32回)-(2010/06/17(Thu) 16:53:12)
No50768 (K さん) に返信
> ■No50767 (マサヤ さん) に返信
>
> 有り難う御座います。
> 私も同様の実装にしております。
>
> マサヤ様の環境では下記の手順3でLabel表示が行われますか?
> --------------------------------
> 1.マウスカーソルをコンボボックスに合わせる。
> 2.マウスでコンボボックスの任意の項目を選択。
>   ⇒この時、マウスカーソルはコンボボックスから外れている状態。
> 3.再びマウスカーソルをコンボボックスに合わせる。
> --------------------------------
はい。
1.でLabelが表示されて
2.でLabelが非表示になって
3.でLabelが表示されます。
Kさんの現象がおきません。
デバッグしてみて、3.の時に、MouseEnterイベントが起こっているか、確かめてみましたでしょうか?
引用返信 編集キー/
■50773 / inTopicNo.16)  Re[10]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (9回)-(2010/06/17(Thu) 17:35:14)
No50770 (マサヤ さん) に返信
> はい。
> 1.でLabelが表示されて
> 2.でLabelが非表示になって
> 3.でLabelが表示されます。
> Kさんの現象がおきません。
> デバッグしてみて、3.の時に、MouseEnterイベントが起こっているか、確かめてみましたでしょうか?
はい、デバッグ確認はしております。
やはり3の時にMouseEnterイベントは起きておらず、意図した動作となりません。
(2の時にもMouseLeaveイベントは起きておりません。)

VB特有の問題なのでしょうか。。。
引用返信 編集キー/
■50775 / inTopicNo.17)  Re[11]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ マサヤ (33回)-(2010/06/17(Thu) 17:41:22)
とても失礼な質問で申し訳ありませんが、
Designer.csに
this.comboBox1.MouseEnter += new System.EventHandler(this.comboBox1_MouseEnter);
this.comboBox1.MouseLeave += new System.EventHandler(this.comboBox1_MouseLeave);
が記述されているのは確認されていますでしょうか?
イベントが登録されていない可能性がありますので。
引用返信 編集キー/
■50778 / inTopicNo.18)  Re[12]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ K (10回)-(2010/06/17(Thu) 18:05:21)
No50775 (マサヤ さん) に返信
> とても失礼な質問で申し訳ありませんが、
> Designer.csに
> this.comboBox1.MouseEnter += new System.EventHandler(this.comboBox1_MouseEnter);
> this.comboBox1.MouseLeave += new System.EventHandler(this.comboBox1_MouseLeave);
> が記述されているのは確認されていますでしょうか?
> イベントが登録されていない可能性がありますので。
VBなので書式は異なるかと思いますが、イベント自体は登録されているはずです。
MouseEnter/MouseLeaveが全く動作しないのではなく、
マウスでComboBoxの項目を選択した後の『初回のみ』動作しない問題です。
それ以外のシーンでは全て正常にMouseEnter/MouseLeaveが動作します。
引用返信 編集キー/
■50780 / inTopicNo.19)  Re[13]: ComboBoxの項目時のMouseLeaveについて
□投稿者/ chobi (9回)-(2010/06/17(Thu) 18:26:12)
No50778 (K さん) に返信
> ■No50775 (マサヤ さん) に返信
>>とても失礼な質問で申し訳ありませんが、
>>Designer.csに
>>this.comboBox1.MouseEnter += new System.EventHandler(this.comboBox1_MouseEnter);
>>this.comboBox1.MouseLeave += new System.EventHandler(this.comboBox1_MouseLeave);
>>が記述されているのは確認されていますでしょうか?
>>イベントが登録されていない可能性がありますので。
> VBなので書式は異なるかと思いますが、イベント自体は登録されているはずです。
> MouseEnter/MouseLeaveが全く動作しないのではなく、
> マウスでComboBoxの項目を選択した後の『初回のみ』動作しない問題です。
> それ以外のシーンでは全て正常にMouseEnter/MouseLeaveが動作します。

問題の状況を正確に把握するためにspy++でウィンドウメッセージを確認してみてはいかがでしょうか?
私の環境では下記に入っています。
"C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\spyxx.exe"
ファイダツールでターゲット(今回はcomboBox1)でメッセージにフィルタ(マウス)
これで実際に実行させれば、どのようなタイミングでどのようなメッセージが発生しているか分かるので
適当なメッセージをWndProcで捕まえてみてはいかがでしょうか?
参考サイト:http://www.winapi-database.com/Message/WM/index.html

引用返信 編集キー/
■50788 / inTopicNo.20)  Re[2]: ComboBoxの項目時のMouseLeaveについて
 
□投稿者/ みきぬ (925回)-(2010/06/17(Thu) 21:44:27)
今更ながら自己フォロー。

> # Windows Form だよね?

WPF じゃないよね? という意味も含んでいたりする。
引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -