作成日: 2018/03/20 最終更新日: 2018/03/20
文書種別
制限事項
詳細
RichTextBoxコントロールに表示されている文字列の一部のフォントを変更すると、変更した箇所の直後で意図しない改行が発生する場合があります。
この事象は、コントロール幅に収まりきらない文字列(ワードラップが発生し得る長さの文字列)に対してフォントを変更した場合にのみ発生します。コントロール幅に収まる文字列(1行に収まる長さの文字列)の場合には発生しません。
なお、事象が発生するフォント関連のプロパティは、SelectionFont、SelectionColor、SelectionBackColor、SelectionCharOffsetが該当し、デザイン時および実行時の両方で発生します。
この事象は、コントロール幅に収まりきらない文字列(ワードラップが発生し得る長さの文字列)に対してフォントを変更した場合にのみ発生します。コントロール幅に収まる文字列(1行に収まる長さの文字列)の場合には発生しません。
なお、事象が発生するフォント関連のプロパティは、SelectionFont、SelectionColor、SelectionBackColor、SelectionCharOffsetが該当し、デザイン時および実行時の両方で発生します。
回避方法
以下のナレッジ文書で公開している方法により、同様の動作が実現可能です。
[RichTextBoxコントロールを使用せずにリッチテキスト形式のデータを出力する方法は?【※サンプル有り】]
具体的には、上記サンプルの"NewActiveReport1.vb"または"NewActiveReport1.cs"内のコードを以下のように変更する方法が考えられます。こちらをご参考の上、ご検討ください。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
[RichTextBoxコントロールを使用せずにリッチテキスト形式のデータを出力する方法は?【※サンプル有り】]
具体的には、上記サンプルの"NewActiveReport1.vb"または"NewActiveReport1.cs"内のコードを以下のように変更する方法が考えられます。こちらをご参考の上、ご検討ください。
◆サンプルコード(VB.NET)
Private Sub Detail_Format(...) Handles Detail.Format
' レポート上に表示するリッチテキスト形式のデータを取得します。
Dim strRTF As String
Using rtb = New System.Windows.Forms.RichTextBox()
' 出力したいテキストを設定します。
rtb.Text = "(出力する文字列)"
' 文字列の一部の色を変更します。
rtb.SelectionStart = 0
rtb.SelectionLength = 5
rtb.SelectionColor = System.Drawing.Color.Red
strRTF = rtb.Rtf
End Using
' (以下省略)
End Sub
' レポート上に表示するリッチテキスト形式のデータを取得します。
Dim strRTF As String
Using rtb = New System.Windows.Forms.RichTextBox()
' 出力したいテキストを設定します。
rtb.Text = "(出力する文字列)"
' 文字列の一部の色を変更します。
rtb.SelectionStart = 0
rtb.SelectionLength = 5
rtb.SelectionColor = System.Drawing.Color.Red
strRTF = rtb.Rtf
End Using
' (以下省略)
End Sub
◆サンプルコード(C#)
private void Detail_Format(object sender, EventArgs e)
{
// レポート上に表示するリッチテキスト形式のデータを取得します。
string strRTF;
using (var rtb = new System.Windows.Forms.RichTextBox())
{
// 出力したいテキストを設定します。
rtb.Text = "(出力する文字列)";
// 文字列の一部の色を変更します。
rtb.SelectionStart = 0;
rtb.SelectionLength = 5;
rtb.SelectionColor = System.Drawing.Color.Red;
strRTF = rtb.Rtf;
}
// (以下省略)
}
{
// レポート上に表示するリッチテキスト形式のデータを取得します。
string strRTF;
using (var rtb = new System.Windows.Forms.RichTextBox())
{
// 出力したいテキストを設定します。
rtb.Text = "(出力する文字列)";
// 文字列の一部の色を変更します。
rtb.SelectionStart = 0;
rtb.SelectionLength = 5;
rtb.SelectionColor = System.Drawing.Color.Red;
strRTF = rtb.Rtf;
}
// (以下省略)
}
旧文書番号
41709