環境 : Windows7(64bit) / Visual Studio2010(Pro) or 2005(Std)
自作のメモ帳アプリケーションを作っている所ですが、本家の
メモ帳に実装されている現在のカレットのある位置の行と列数を
どぼんの.NET Tipsにあるものを参考にして実装しようとしましたが
文字の全選択などをすると列数が負の値(実際ありえない)を示して
おかしな表示になるのですがどうすれば本家と同じような表示に
出来るのでしょうか。
んあ?
なんで、そんな簡単な質問をしてるのに中級者なんですか?謎。
オレがぼちぼち11/3に去るよ。笑
れお先生(翔泳ミキオ、ぼく、オレ他の名前の荒らし)へ
あなたに答えをもらいたくて書いている訳ではないので。
ちなみにVBで書いてもらったのをさらにC#に変換する作業が
待っていますので。(C#掲示板が消えたのでVBで聞いてC#に
変換する話なので)
どう計算をしたのでしょうか。
in VB
' assume: Option Infer On
Dim row = TargetText.GetLineFromCharIndex(TargetText.SelectionStart)
Dim column = TargetText.SelectionStart - TargetText.GetFirstCharIndexFromLine(row)
in C#
var row = TargetText.GetLineFromCharIndex(TargetText.SelectionStart);
var column = TargetText.SelectionStart - TargetText.GetFirstCharIndexFromLine(row);
と,必要な単純にメソッドを呼び出してちょっと計算するだけなのですが……。
References)
MSDN: TextBoxBase.GetLineFromCharIndex メソッド (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.getlinefromcharindex.aspx
MSDN: TextBoxBase.GetFirstCharIndexFromLine メソッド (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.getfirstcharindexfromline.aspx