![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
変数内に入っているテキストから'が先頭にある行の色のみを灰色に変更して結果をリッチテキストボックスに表示するという事をしたいのですが、うまくいかず困っております・・。
最初は、変数text内に文字列が入っているとして下記コードを書いたのですが、無限ループになってしまいますし、色々サイトを見ていて無理なんだと気づき、次はhttp://itsuko-m.hp.infoseek.co.jp/rtf04.htm
を参考にしてみたのですが、やはり良く分かりません・・。
申し訳ありませんが、何か助言頂けると嬉しいです。
VB.NETです。
Do
RichTextBox1.SelectionStart = text.IndexOf("'")
RichTextBox1.SelectionLength = text.IndexOf(vbCrLf) - text.IndexOf("'")
RichTextBox1.SelectionColor = System.Drawing.Color.LightGray
Loop While text.IndexOf("'") <= -1
No.3ベストアンサー
- 回答日時:
こんな事をしたいのですか?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim text As String = _
"あいうえお" & vbCrLf & _
"'かきくけこ" & vbCrLf & _
"さしすせそ" & vbCrLf & _
"たちつてと" & vbCrLf & _
"'なにぬねの" & vbCrLf & _
"はひふへほ" & vbCrLf & _
"まみむめも" & vbCrLf & _
"'やゆよ" & vbCrLf & _
"らりるれろ" & vbCrLf & _
"わをん"
Me.RichTextBox1.Text = text
Dim rtb As RichTextBox = Me.RichTextBox1
Dim intS As Integer = 0
Dim intE As Integer = 0
While True
intS = rtb.Text.IndexOf("'"c, intS)
If intS = -1 Then
Exit While
Else
intE = rtb.Text.IndexOf(Chr(10), intS)
If intE = -1 Then
Exit While
Else
rtb.SelectionStart = intS
rtb.SelectionLength = intE - intS
rtb.SelectionColor = System.Drawing.Color.LightGray
intS = intE
End If
End If
End While
End Sub
IndexOfではvbCrLfは検索できませんね、何ででしょう
オブジェクトブラウザで見ると「Chr(10) & Chr(13)」のString型なのに...
RTFを調査してみると幸せになれるかも
No.2
- 回答日時:
そうなんですか!?
フォームにリッチテキストとボタンを1つずつ貼り付け。
で、ボタンのクリックイベントに
>RichTextBox1.SelectionStart = 1
>RichTextBox1.SelectionLength = 2
>RichTextBox1.SelectionColor = System.Drawing.Color.LightGray
を書いて2度押すと全体の文字色がグレーになるということでしょうか?
リッチテキストはVB6でもあるので、VB6で相当する処理を行ってみました。
結果は、何度実行ボタンを押しても2文字の色が変わるだけでした。
.NETになった時に何があったんでしょうね・・・。
ごめんなさい。お役には立てなかったみたいで。
No.1
- 回答日時:
VB.NETは未経験者なのでヘンな事言ってたらすみません。
text.IndexOf("'")というのは、textの中の文字列の中から最初に出てくる"'"の位置を返しますか?
とすると、例えば10文字目に"'"があるとすればtextの内容が変わらない限り
ずっとtext.IndexOf("'")は10なので、
>Loop While text.IndexOf("'") <= -1
という終了条件を抜け出せなくて無限ループになるのではないでしょうか?
アドバイスありがとうございます。
はい、無限ループになる原因はおっしゃる通りなのですが、問題はそこではなく
下記のように直接文字列を指定して1文字目から2文字をグレーに変えるというコードを書いた場合でも、最初実行すると、ちゃんと2文字の色が変わるのですが、色が変わっている状態で再度同じコードを実行すると全体の文字色が変わってしまいまして・・。
RichTextBox1.SelectionStart = 1
RichTextBox1.SelectionLength = 2
RichTextBox1.SelectionColor = System.Drawing.Color.LightGray
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスかラベル上の...
-
アクセスのフィールドに値をペ...
-
零元のはいっている
-
subsequentとnextの違いってな...
-
他のフォームから別のフォーム...
-
Excel VBAでsub,dimは何の略?
-
演奏記号の・・・・
-
2次元配列のデータをファイルへ...
-
xmlの値を配列に格納したいんで...
-
xmlの値を配列変数に格納し...
-
サブドメインのindexはSEO的に...
-
texで図と表を並べたい
-
4変数の非線形方程式のときかた
-
Excel ユーザーフォームで計算 ...
-
マウスポインタの変更
-
パーソナルXLSBのfuctionを呼び...
-
チェックボックスを操作できな...
-
C言語のサフィックスについて
-
visual basic初心者です。 visu...
-
文字列を繰り返して表示する VBA
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVBAで文章にある複数の...
-
テキストボックスかラベル上の...
-
RichTextBoxで指定行の色を自動...
-
[VB6] SQLの作成について
-
ReadParseで同名のinput名は配...
-
DTPicker テキストクリアの方法
-
sublimit textっていうエディタ...
-
Googleシート「A1」でなくて「A...
-
Can you text me your business...
-
vba 日本語以外を抽出について
-
文字列を配列に…。
-
フォームのテキストボックス内...
-
【VBS】クリップボード操作につ...
-
VB2010 シリアル通信の文字列...
-
「Thanks 4 sending me」←誤文?
-
XMLファイルのattribute値がう...
-
PHP GDでテキストを含む最小の...
-
助けてください!
-
EXCELからWORDの文章を取得
-
VB6.0 sp5]テキストボックスと...
おすすめ情報