- 題名: 固定文字列以外を自由に編集可能なテキストエディタを実現したい
- 日時: 2012/07/04 23:53:20
- ID: 30701
- この記事の返信元:
- (なし)
- この記事への返信:
- [30702] Re[1]: 固定文字列以外を自由に編集可能なテキストエディタを実現したい2012/07/05 8:02:32
- ツリーを表示
■No30701に返信(Ritさんの記事) いまひとつ理解出来てない気がするのですが こんな感じでしょうか?(VB.NETですので置き換えて考えて下さい) Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load Dim value = "aaaa000bbbb000ccc000ddd000eee000" RichTextBox1.Text = value Dim idx = value.IndexOf("000") Do While idx >= 0 RichTextBox1.Select(idx, 3) RichTextBox1.SelectionColor = Color.Red RichTextBox1.SelectionProtected = True idx = value.IndexOf("000", idx + 3) Loop End Sub
返信ありがとうございます。 説明がわかりづらくて申し訳ありません。 このGUIで得たい結果は、String.Format("ユーザ{0:000}が入力した文字列", count);のような感じで指定するフォーマッタ部分です。 たとえばユーザがテキストボックスに入力したのが"aaaa000bbbb000ccc000ddd000eee000"であり、GUI上で赤字(protectされている)部分が index[12]の"000"だとすると、最終的に以下のような文字列を作り出したいのです。 aaaa000bbbb001ccc000ddd000eee000 aaaa000bbbb002ccc000ddd000eee000 aaaa000bbbb003ccc000ddd000eee000 aaaa000bbbb004ccc000ddd000eee000 ・・・ (1)ユーザは任意の文字列を作成 (2)3桁の連番にしたい部分を"000"にする。 (3)OKすると、(1)で作成した文字列の(2)で指定した部分が連番となる複数の文字列が作成される 今回の相談は、(2)で必ずどこかに"000"を含ませるよう、GUI上で"000"をあらかじめ含んだサンプル文字列を表示しておき、 わかりやすいように赤字にして、ユーザが削除できないようにRichTextBoxでprotectしている、というものです。 protectしたとき、直接入力なら意図通りに"000"部分のみprotectされるのですが、日本語入力だと"000"の前後に文字を挿入できない状態です。
分類:[.NET]