- 締切済み
VBのRichTextBoxの文字色変更
VBでテキストエディタを作っています。 使い勝手を良くするために、 キーワード(if,for,while,int,char)に色をつける仕様にしました。 しかし実際動かしてみるとすごくチカチカして使い物になりませんでした。 SelectionStart = 5 : SelectionLength = 10 SelectionColor = Color.Red もしくは Select(5,10) SelectionColor = Color.Red 一度選択してから色を変えるのがいけないと思うのですが、 他に一部の色を変える方法はないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ToOrisugaru
- ベストアンサー率28% (80/280)
関連するQ&A
- RichTextBoxで指定行の色を自動で変更・・。
変数内に入っているテキストから'が先頭にある行の色のみを灰色に変更して結果をリッチテキストボックスに表示するという事をしたいのですが、うまくいかず困っております・・。 最初は、変数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
- ベストアンサー
- Visual Basic
- VB2008、文字色について教えて下さい
VB2008を使用しています。 現在、Form内複数あるTextBox内の文字をいくつか選択し、RichTextBox内に"・"で区切って代入するプログラムを作成しています。 その際、RichTextBox内に代入されたTextBoxの文字色を赤色に変える(元は黒色です)コードを下記のように作成しました。 Dim strList() As String strList = RichTextBox1.Text.Split("・"c) For Each strMoji As String In strList Select Case strMoji Case TextBox1.Text TextBox1.ForeColor = Color.Red Case TextBox2.Text TextBox2.ForeColor = Color.Red End Select Next 上記コードは問題ないのですが、RichTextBox内に一度代入された複数のTextBoxの文字から、いくつかを選択して削除した際、選択したTextBoxの文字を元の黒色に戻す方法がわかりません。単純に全てのTextBoxの文字色を黒色に戻すコードを書いてしまうと、同様の操作を他のRichTextBoxに適用した場合、そちらに代入された文字色も黒色に戻ってしまいます。上記のコードを応用すれば出来そうなのですが、良い方法はないでしょうか?上記コード3行目の「In」を「Out」や「Cut」に変更しても構文エラーになってしまいました。
- ベストアンサー
- Visual Basic
- VB標準のエディタの色分けを他のアプリでも有効にしたい
VBやVBAのエディタは、例えば「If」や「End If」を青色に、「'」より右側を緑色に自動的に変換してくれますよね。 これを他のアプリ(実はNotes)でも実現したいのです。 具体的には、情報共有の一環として、部署内でのソースの共有を考えています。VBのエディタで作成したソースをNotes(別にNotesではなくても例えばWord等に)コピー&ペーストしても、VBのエディタで作成したソースというのはリッチテキストではない(と思う)ので色までコピーされません。 しかし、EmEditor等のテキストエディタでできているので、実現する方法はあると思います(もちろんEmEditorもリッチテキストではありませんが)。 短いソースなら、一つ一つ色を指定して変えてもいいのですが、長いソースだと色を変えるのが億劫になります。何かよい方法をご存知の方お教えください。 よろしくお願いいたします。
- 締切済み
- Visual Basic
- 可変個引数を使った関数で文字の長さを知りたい
可変個引数を使った引数を使って引数の文字列の長さを知りたいのですがどうすればいいのかわかりません。 DXライブラリを使って文字列の長さを測って文字をどこにおくのかを決めているため文字列の長さがわからないと困ってしまいます。 どのようにすれば可変個引数を使った引数の文字列の長さを測れますか? 大体以下のような感じで作っています。 void kai( int *x , int *y ); //文字列を改行する関数 int JC( unsigned char code ); //文字が1バイト文字 か 2バイト文字か判別する void mozi_show2( int x , int y , int xm , int yb , int color , int char_set , const char *s , ... ){ int i = 0; int xs = 0 , ys = 0; int m_color = color; char One[ 2 ]; //1バイト文字格納用 char Two[ 3 ]; //2バイト文字格納用 const char* p; va_list args; va_start( args , s ); p = s; while( *p != '\0' ){ switch( *p ){ case '%': p++; assert( *p != '\0' ); switch( *p ){ case 'd': DrawFormatStringToHandle( x + xs , y + ys * yb , m_color , char_set , "%d" , va_arg( args , int ) ); //purintfと使い方はほぼ同じで左から文字を表示したいX座標・文字を表示したいY座標 //文字の色・文字の書式・格納用文字列・表示したいint型の数値をあらわしています xs += 16; /* xs += GetDrawFormatStringWidthToHandle( char_set , "%d" , va_arg( args , int ) ); 本来ならこの関数を使って文字列の長さを計る左から 文字列の書式・格納用文字列・長さを測りたいint型文字列 これを使うと別のものを計っているみたいで文字の長さがわからない 文字の長さってどうやって計るの? */ break; case 'f': DrawFormatStringToHandle( x + xs , y + ys * yb , m_color , char_set , "%f" , va_arg( args , double ) ); break; case 'c': DrawFormatStringToHandle( x + xs , y + ys * yb , m_color , char_set , "%c" , va_arg( args , char ) ); break; case 's': DrawFormatStringToHandle( x + xs , y + ys * yb , m_color , char_set , "%s" , va_arg( args , const char* ) ); break; case '%': DrawFormatStringToHandle( x + xs , y + ys * yb , m_color , char_set , "%%" ); xs += GetDrawStringWidthToHandle( "%" , 1 , char_set ); break; } p++; break; default: if( JC( *p ) ){ Two[ 0 ] = *p; Two[ 1 ] = *( p + 1 ); Two[ 2 ] = '\0'; DrawStringToHandle( x + xs , y + ys * yb , Two , m_color , char_set ); xs += GetDrawStringWidthToHandle( Two , 2 , char_set ); p += 2; } else{ One[ 0 ] = *p; One[ 1 ] = '\0'; DrawStringToHandle( x + xs , y + ys * yb , One , m_color , char_set ); xs += GetDrawStringWidthToHandle( One , 1 , char_set ); p++; } break; } if( xs > xm ){ kai( &xs , &ys ); } } va_end( args ); } void zitu_draw( void ){ char *str = "%d個 OK"; int i = 12; mozi_show2( 100 , 100 , 300 , 15 , red_s , MG_14_0 , str , i ); //左から 文字を表示するX座標・文字を表示するY座標・文字を改行する文字列の長さ //改行した時のY座標の縦幅・文字色・文字の書式・表示したい文字列・%dに表示したいint型の値 }
- 締切済み
- C・C++・C#
- 文字列とポインタの問題です。
#include<stdio.h> int f(char *s); int main(void){ char*str="nasida Institute of Technology"; int i; i=f(str); printf("%s:%d\n",str,i); return 0; } int f(char *s) { int j=0; while(*s!='\0'){ if(*s=='t'){ j++; } s++; } return j; } このプログラムの答えが3になるんですが、if文のとこの動作がよく分からないので、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VB.NETでフォントのカラーを変える方法
VB.NETを使っていますが、Label.text=color.redと色指定を記述するパターンをcolor.redの部分に変わってhex値で指定する方法をご存知ないでしょうか。DBから抽出したカラー情報が10進数で書かれています。 まずこれを16進数に直す必要があると思いますが・・・ 宜しくお願いいたします
- 締切済み
- Visual Basic
- Visual C++のrichtextboxの記述について質問
Visual C++のプログラミングについて質問があります。 使ってるプロジェクトはVisuaC++ CLRのwindowsフォーム アプリケーションで作ってます。 今、メモ帳などのテキストエディタを作っているのですが、 ある特定の文字だけを部分的に青文字にするにはどのように 書けばよいでしょうか? 最初はコントロールにtextBoxを使って イベント関数をこのようにしてたのですが private: System::Void-------------------- { if(textBox1->Text = "japan") textBox1->ForeColor = Color::Blue; else textBox1->ForeColor = Color::Black; } この場合ですと、"japan"とtextBox内に入力されれば フォントが青色になるのですが例えば "japanef aiueo"と入れると青色にはなりません。 例えば "japanaiueo ef efefefadafffda"と入力されると japanと綴られている所だけフォントを変えたいのですが、 どのように記述すればよいのでしょうか? 自分なりに考えると、TextBoxではなくRichTextBoxのfind関数を 使えばいいのではないかと思うのですが、どのように記述すれば よいのか悩んでいます もしお分かりいただける方がいれば教えてくださると幸いです。
- ベストアンサー
- C・C++・C#
- VBのリッチテキストについて
OS98,VB6.0でテキストエディタを作っています。 文章中で指定した文字列を部分的に色をつける機能をつけたいと考え、 いろいろと調べてわかったことは、リッチテキストを使えばいいということでした。しかし、どのようにすれば、部分的に色を変えることができるのかわかりません。 あらかじめワードパッドで部分的に色を変えて保存したrtfファイルではリッチテキストに読み込んだとき、ちゃんと部分的に色が変わった状態で表示させることができました。 また文字の書式を取得しなければならないのかと思って以下のアドレスのプログラムを参考にさせてもらっていたのですが、実行ボタンを押しても何も起こらずいきずまってしまいました。 http://vbvbvb.com/jp/gtips/0451/gSendMessageEmGetcharformat.html どんな情報でもよいので、よろしくお願いします。
- ベストアンサー
- Visual Basic
- VB2008で定数に色の設定をしたいです。(初心者)
VB2008で定数に色の設定をしたいです。(初心者) VB2008初心者です。 定数に色の設定をしたいのですがなかなか上手く設定出来ません。 変数に設定は出来るのですが、 Dim COLOR As System.Drawing.Color = COLOR.Red 定数にした場合エラーになります。 Public Const COLOR As System.Drawing.Color = COLOR.AliceBlue 色々他も試してみたのですが・・初歩的な質問で申し訳ありません。 設定は「System.Drawing.Color」でなくても良いのですが、 どなかたかご教授頂きたく宜しくお願い致します。
- ベストアンサー
- Visual Basic
お礼
はじめまして、回答ありがとうございます。 >色、フォントを設定するときには毎回最初の行から最終行まで編集す >るイメージでした。 まさにそう作りました。 rtf(RichTextFormat)wikiより、 なるほど非常に難しそうですね。 まだ学習を始めて一年で、それっぽいアプリを作ったのも初なので 今回はこの辺で完成としようかと思います。