Out of Memory

ごめん、忘れてた。

目次

Blog 利用状況

ニュース

2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

aetos

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

Microsoft MVP for Windows SDK July 2007 - February 2008, Microsoft MVP for Visual C++ February 2008 - June 2009
Microsoft MVP for Windows SDK
July 2007 - February 2008
Microsoft MVP for Visual C++
February 2008 - June 2009

アクセサリ

あわせて読みたい

e-Words

アフィリエイト

記事カテゴリ

書庫

日記カテゴリ

エクスプローラの選択ルール

エクスプローラで、マウスクリックおよびキーボードの方向キーと、Ctrl、Shiftキーを使って選択する場合のルール。
DataGrid でエクスプローラ風の複数選択を実現するために調べたメモ。
リストビューは詳細選択状態とする。
説明のために、アンカー行という言葉を導入した。意味は適当に察して欲しい。

  1. マウスクリックの場合
    1. Ctrl も Shift も押されていない場合
      • クリックした行を選択する。
      • それ以外の行の選択を解除する。
      • クリックした行をアンカー行とする。
      • クリックした行をフォーカスする。
    2. Ctrl だけが押されている場合
      • クリックした行の選択状態をトグルする(未選択ならば選択し、選択済みならば選択を解除する)。
      • 他の行の選択状態は変更しない。
      • クリックした行をアンカー行とする。
      • クリックした行をフォーカスする。
    3. Shift だけが押されている場合
      • アンカー行からクリックした行までを選択する。
      • それ以外の行の選択を解除する。
      • アンカー行は変更しない。
      • クリックした行をフォーカスする。
    4. Ctrl と Shift が押されている場合
      • クリックした行を選択する。
      • アンカー行からクリックした行の手前までの選択状態を、アンカー行と同じにする(アンカー行が選択されていれば選択し、選択されていなければ選択を解除する)。
      • 他の行の選択状態は変更しない。
      • アンカー行は変更しない。
      • クリックした行をフォーカスする。
  2. キーボードの場合
    1. 上/下キーの場合
      1. Ctrl も Shift も押されていない場合
        • 現在のフォーカス行の前/次の行を選択する。
        • それ以外の行の選択を解除する。
        • 選択した行をアンカー行とする。
        • 選択した行をフォーカスする。
      2. Ctrl だけが押されている場合
        • 現在のフォーカス行の前/次の行をフォーカスする。
        • 選択状態は変更しない。
        • アンカー行は変更しない。
      3. Shift が押されている場合。
        • アンカー行から、現在のフォーカス行の前/次の行までを選択する。
        • それ以外の行の選択を解除する。
        • アンカー行は変更しない。
        • 現在のフォーカス行の前/次の行をフォーカスする。
        • Ctrl が押されている場合でも同じ。
    2. PageUp/PageDownキーの場合
      1. Ctrl も Shift も押されていない場合
        • 現在表示されている最も上/下の行を選択する。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行を選択する。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行を選択する。
        • それ以外は上/下キーと同じ。
      2. Ctrl だけが押されている場合
        • 現在表示されている最も上/下の行をフォーカスする。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行をフォーカスする。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行をフォーカスする。
        • それ以外は上/下キーと同じ。
      3. Shift が押されている場合。
        • アンカー行から、現在表示されている最も上/下の行までを選択する。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行を追加選択する。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行までを追加選択する。
        • 選択した最も上/下の行をフォーカスする。
        • それ以外は上/下キーと同じ。
    3. Hoge/Endキーの場合
      1. Ctrl も Shift も押されていない場合
        • 現在表示されている最も上/最も下の行を選択する。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行を選択する。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行を選択する。
        • それ以外は上/下キーと同じ。
      2. Ctrl だけが押されている場合
        • 現在表示されている最も上/最も下の行をフォーカスする。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行をフォーカスする。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行をフォーカスする。
        • それ以外は上/下キーと同じ。
      3. Shift が押されている場合。
        • アンカー行から、現在表示されている最も上/最も下の行までを選択する。
        • もう一度押すと、そこから現在のウィンドウに表示可能な行数だけ上/下の行を追加選択する。
          あるいは、現在の選択行の上/下に1ページ分の項目がない場合、最も上/下の行を追加選択する。
        • 選択した最も上/下の行をフォーカスする。
        • それ以外は上/下キーと同じ。
    4. その他のキー
      1. Ctrl + A
        • 全ての行を選択する。
        • 最も上の行をフォーカスする。
        • アンカー行は変更しない。
      2. Ctrl + スペース
        • フォーカス行の選択をトグルする。
        • フォーカス行をアンカー行にする。
        • 他の行の選択状態は変更しない。
  3. 備考
    • キーボード操作では、Shift を押している時、Ctrl キーは効果が無い。
    • DataGridでは、現在表示されている最も上/下の行番号を取得する方法が(ドキュメントされている範囲では)存在しないので、PageUp/PageDownの再現は難しい。
      常に、現在のフォーカス行の1ページ上/下とするのが妥当だろう。

投稿日時 : 2007年12月28日 12:37

Feedback

No comments posted yet.
タイトル  
名前  
Url
コメント