Validate および Vote をお願いします(最近こればっか。。。)
エディタでの、マウスボタンダブルクリックによる選択範囲について
VS2005 では、選択範囲について、インテリジェントな制御が行われています。マウスボタンをダブルクリックすると、クリックしたところにある“単語”が選択されます。英語では単語の区切りには空白文字がありますが、日本語にはありません。そのため、「漢字」「ひらがな」「数字」など、文字種別が変わるところが、“単語”の区切りとして認識されます。
しかし、VS2005 のソースコードエディタでは、メソッド名やコントロール名に日本語とアルファベットが混在していても、メソッド名やコントロール名すべてを“単語”として認識してくれます。たとえば、「登録button」という名前のコントロールを作成します。「登録」付近でダブルクリックした場合、VS.NET2003 の場合、「登録」だけが選択されますが、VS2005 では、「登録button」全体が選択されます。
文字列選択中に何か入力を行うと、選択範囲全体に対して、その入力が適用されます。コピーなら選択範囲がクリップボードにコピーされますし、カットなら選択範囲全体が削除されます。同じように、インテリセンスから入力した場合も、選択範囲全体が置き換わり…ません、というバグです。
その後の調査で、選択は関係なく、カーソルの位置が関係していることがわかりました。ダブルクリックで選択すると、カーソルが単語の一番最後に移動しますから、それで発生しているようですね。
「this」がForm で、"|"をカーソルとし、インテリセンスから選択した、WndProc に置き換えるとすると、
this.|あいうabc → this.WndProcあいうabc
this.あいう|abc → this.WndProc
this.あいうabc| → this.あいうWndProc
のような置き換え動作が行われます。まぁ、「選択せずに、カーソルを途中に置いて[CTRL]+[J]」をすれば、回避は出来るのですけど。。。
投稿日時 : 2005年10月31日 20:51