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

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

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

ListBox内の項目を選び直すと発生するイベント

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

■90187 / inTopicNo.1)  ListBox内の項目を選び直すと発生するイベント
  
□投稿者/ manguuse (2回)-(2019/02/15(Fri) 17:29:39)

分類:[.NET 全般] 

Windows FormのListBox内にある項目を選び直すと(クリックするたびに)発生するイベントについて調べていました。
SelectedIndexChangedで良い気がしますが、フォームを開くと最初にこのイベントが発生します。
項目を選択していないのに、なぜフォームを開くとこのイベントが発生するのでしょうか?そういう仕様ですと言われたらそれまでなのですが・・・
引用返信 編集キー/
■90193 / inTopicNo.2)  Re[1]: ListBox内の項目を選び直すと発生するイベント
□投稿者/ Azulean (1035回)-(2019/02/15(Fri) 21:52:01)
No90187 (manguuse さん) に返信
> SelectedIndexChangedで良い気がしますが、フォームを開くと最初にこのイベントが発生します。
> 項目を選択していないのに、なぜフォームを開くとこのイベントが発生するのでしょうか?そういう仕様ですと言われたらそれまでなのですが・・・

SelectedIndexChanged イベントはユーザーが明示的な操作をしたとき以外にも、選択状態が変化したときに発生します。
たとえば、プログラムコード中で SelectedIndex プロパティを設定した時、フォーム上の一番最初のコントロールとしてフォーカスが設定され、結果的に最初の項目が選択された時など。

SelectedIndexChanged イベントを使うのであれば、「ユーザーの選択以外もあり得る」という前提で使うことが必要です。
引用返信 編集キー/
■90207 / inTopicNo.3)  Re[2]: ListBox内の項目を選び直すと発生するイベント
□投稿者/ manguuse (1回)-(2019/02/17(Sun) 21:47:38)
よく理解できました。ユーザーが選択した場合のみ発動するイベントはあるでしょうか?
イベントリストを一通り見ましたが、よくわかりませんでした。
引用返信 編集キー/
■90208 / inTopicNo.4)  Re[3]: ListBox内の項目を選び直すと発生するイベント
□投稿者/ Azulean (1036回)-(2019/02/17(Sun) 23:00:42)
No90207 (manguuse さん) に返信
> よく理解できました。ユーザーが選択した場合のみ発動するイベントはあるでしょうか?
> イベントリストを一通り見ましたが、よくわかりませんでした。

ListBox の場合は存在しないと思われます。
よって、できるだけ、ユーザーが明示的に選択したときのみ動くといった仕様を避けていることが多いです。

考えられる選択肢:
1.諦める
2.フォーム上で一番最初にフォーカスが当たるコントロールを ListBox 以外にする(TabIndex プロパティを調整する、あるいは TabStop プロパティを false にする)
3.KeyDown イベントや Click イベントなどと併用して、明示的な選択か否かを頑張って判定する

// タブオーダーとか、フォーカスとかよくわからない状態の場合、実現は難しいと思います。
引用返信 編集キー/
■90310 / inTopicNo.5)  Re[4]: ListBox内の項目を選び直すと発生するイベント
□投稿者/ manguuse (5回)-(2019/02/25(Mon) 15:46:17)
No90208 (Azulean さん) に返信
> ■No90207 (manguuse さん) に返信
>>よく理解できました。ユーザーが選択した場合のみ発動するイベントはあるでしょうか?
>>イベントリストを一通り見ましたが、よくわかりませんでした。
>
> ListBox の場合は存在しないと思われます。
> よって、できるだけ、ユーザーが明示的に選択したときのみ動くといった仕様を避けていることが多いです。
>
> 考えられる選択肢:
> 1.諦める
> 2.フォーム上で一番最初にフォーカスが当たるコントロールを ListBox 以外にする(TabIndex プロパティを調整する、あるいは TabStop プロパティを false にする)
> 3.KeyDown イベントや Click イベントなどと併用して、明示的な選択か否かを頑張って判定する
>
> // タブオーダーとか、フォーカスとかよくわからない状態の場合、実現は難しいと思います。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ