C#:Winフォーム:リッチテキストボックス
参考
コントロールで矢印、Tab、Enter、Escキーが押されたことを知る - .NET Tips (VB.NET,C#...)"
改行(WordWrap )
// // 概要: // 複数行テキスト ボックス コントロールで必要に応じて自動的に次の行に折り返すかどうかを示します。 // // 戻り値: // 複数行テキスト ボックス コントロールで行が折り返される場合は true。ユーザーがコントロールの右端を超えてテキストを入力すると、複数行テキスト ボックス // コントロールが自動的に水平にスクロールする場合は false。既定値は、true です。 [DefaultValue(true)] [Localizable(true)] [SRCategoryAttribute("CatBehavior")] [SRDescriptionAttribute("TextBoxWordWrapDescr")] public bool WordWrap { get; set; }
キャレット位置
テキストボックスの文字の入力位置(キャレット)を取得・設定する [C#] TextBox | JOHOBASE"
テキストボックスのキャレットを文字列の末尾に移動させるには?@IT"
[C#] テキストボックスのキャレットの位置を変更する (TextBoxのキャレット移動)"
TextBox(またはRichTextBox)の現在のカレット位置(行と列)を取得する - .NET Tips (VB.NET,C#...)"
RichTextBox.SelectionStart // 複数行対応 private void rtxt_KeyUp(object sender, KeyEventArgs e) { RichTextBox rtxt = (RichTextBox)sender; //文字列 string str = rtxt.Text; //カレットの位置を取得 int selectPos = rtxt.SelectionStart; //カレットの位置までの行を数える int row = 1, startPos = 0; for (int endPos = 0; (endPos = str.IndexOf('\n', startPos)) < selectPos && endPos > -1; row++) { startPos = endPos + 1; } //列の計算 int col = selectPos - startPos + 1; //結果を表示 Console.WriteLine("行:{0} 列:{1}", row, col); }