いままで.NET Frameworkにキャレット関係のプロパティ・メソッドが見あたらないことが不満だった。

しかし私は開眼した!
SelectionStartプロパティが選択中か否かにかかわらずキャレット位置を示すのだ!


ってことでProcessCmdKeyメソッドでこんなのでいける。

if (key == (Keys.Control | Keys.J)) {
   int current = SelectionStart + SelectionLength;
   SelectionLength = 0;
   SelectionStart = current - 1;
   return true;
}
else
   return false;