- PR -

リッチテキストのフォント・色/サイズの変更

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/11/19
投稿数: 14
投稿日時: 2004-11-22 19:43
初めまして。オズと申します。
現在C#でリッチテキストを使い開発しているのですが、
選択した文字のサイズ/色の変更は出来るのですが
その後テキストに文字を入力すると全ての情報が変更されてしまいます。
1部分の文字のみの変更を保持したままテキスト入力が出来ません。
ネットで調べても意図している答えが見つかりませんでした。
どなたかご教授ください。
お願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-23 10:46
諸農です。

状況を把握するのが難しいので。

> 選択した文字のサイズ/色の変更は出来るのですが

これはコードで行っているのですね?
コードはどのようになっていますか?

> その後テキストに文字を入力すると全ての情報が変更されてしまいます。
> 1部分の文字のみの変更を保持したままテキスト入力が出来ません。

変更後にUIから入力を行うと、選択されていた文字列に対して変更した
FontやColorの状態が元に戻ると言うことでしょうか?
RichTextBox全体として、元の状態に戻るということなのでしょうか?

それとも、変更したFontやColorで入力が出来ないということでしょうか?
選択されていた文字に対しての変更は維持されたままと言うことですか?

> ネットで調べても意図している答えが見つかりませんでした。

意図していることを把握したいので、検索した時のキーワードを教えてください。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
未記入
会議室デビュー日: 2004/11/19
投稿数: 14
投稿日時: 2004-11-24 09:54
ありがとうございます。
説明が不足していたので補足します。

まずテキストボックス内の既存の入力文字列に対しては
コード(ソース内)でサイズ/色の変更は出来ています。(複数の変更でもOK)

しかしながら上記変更を行った後、予めサイズ/色の変更を行った後、
文字列を入力するとボックス内の全ての文字列がその変更したサイズ/色の変更に
なってしまいます。
以下に実ソースを記載します。

start = ritchtextbox.SelectionStart;    //選択位置を取得
ritchtextbox.Text = this.rTxtSoapS.Text.Insert(start, 文字列); //入力文字列を挿入
ritchtextbox.Select(start, start + 文字列.Length -1);  //入力文字列を選択状態にする
this.rTxtSoapS.SelectionColor = 文字の変更色;
this.rTxtSoapS.SelectionFont = 文字の変更サイズ;

SelectionColor ・SelectionFontがボックス内の全ての文字列に対し変更を行います。
度々でご迷惑をお掛けしますがご教授ください。

(検索した時のキーワードは「リッチテキスト フォント」です)
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-24 10:47
諸農です。

アップされているコードなんですが、結果としてどっちのRichTextBoxにどんな反映を期待しているのでしょうか??
ritchtextboxのほうですか?
this.rTxtSoapSのほうですか?
何をしているのか、申し訳ないんですが、全然把握できません。

それと、ritchtextboxの方への文字列挿入の方法なんですが、
SelectedTextプロパティを使っていないのは何故なんでしょうか?

最後にthis.rTxtSoapSに対して色とフォントの変更操作を行っていますが、
> SelectionColor ・SelectionFontがボックス内の全ての文字列に対し変更を行います。
と書かれている内容と
> 文字列を入力するとボックス内の全ての文字列がその変更したサイズ/色の変更
との関連が良くわかりません。

もう少し具体的に説明して頂けるとコメントもしやすいのですが。

コード:
 //RichTextBox.HideSelectionはfalseに設定しておくこと
 //初期表示用文字列の設定
private void Form1_Load(object sender, System.EventArgs e)
{
    richTextBox1.Text = "日本語の文字入力日本語文字入力日本語文字入力日本語文字入力";
}
 //表示されている文字列のうち選択されている文字列に対するフォントと色の変更
private void button1_Click(object sender, System.EventArgs e)
{
    if (colorDialog1.ShowDialog() != DialogResult.OK) return;
    richTextBox1.SelectionColor = colorDialog1.Color;
    if (fontDialog1.ShowDialog() != DialogResult.OK) return;
    richTextBox1.SelectionFont = fontDialog1.Font;
}

 //TextBoxの文字列をRichTextBoxのカーソル位置に挿入して、
 //挿入した文字列をRichTextBox上で選択状態にする
private void button2_Click(object sender, System.EventArgs e)
{
    int s = richTextBox1.SelectionStart;
    richTextBox1.SelectedText = textBox1.Text;
    richTextBox1.SelectionStart = s;
    richTextBox1.SelectionLength = textBox1.Text.Length;
}



_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
未記入
会議室デビュー日: 2004/11/19
投稿数: 14
投稿日時: 2004-11-24 14:02
度々申訳有りませんでした。
説明が不足/不備な点が多々ありました。

今回の回答でようやく動作が確認できました。
(SelectedTextプロパティを勘違いしてました・・・)

まだ勉強不足で申訳有りませんでした。
これからもご教授御願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-24 18:38
諸農です。

引用:

未記入さんの書き込み (2004-11-24 14:02) より:
度々申訳有りませんでした。
説明が不足/不備な点が多々ありました。

今回の回答でようやく動作が確認できました。
(SelectedTextプロパティを勘違いしてました・・・)



ん?すみません。
結局、どういうことだったのでしょう。。(^^?

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)