1

わかりました、vb.net 2008 の MS の既定の Richtextbox に奇妙なタイプのバグが見つかりました。プログラムで Richtextbox にテキスト行を追加した場合。右側から隙間があります。下の画像を参照してください

エラー

ここに私のコードがあります

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim f As New Form
    Dim rtb As New RichTextBox
    f.Width = 500
    f.Height = 500
    rtb.RightToLeft = Windows.Forms.RightToLeft.Yes
    For i = 1 To 20
        rtb.AppendText("بسم اللہ الرحمن الرحیم" & vbNewLine)
    Next
    rtb.Dock = DockStyle.Fill
    f.Controls.Add(rtb)
    f.Show()
End Sub
4

2 に答える 2

1

説明できませんが、コードの順序を変更して、テキストを追加するに RichTextBox コントロールがフォームに追加されるようにしてください。これは私のために働いた:

Private Sub btn1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn1.Click
  Dim f As New Form
  f.Width = 500
  f.Height = 500

  Dim rtb As New RichTextBox
  rtb.Name = "rtb"
  rtb.Dock = DockStyle.Fill
  rtb.RightToLeft = RightToLeft.Yes

  f.Controls.Add(rtb)
  For i = 1 To 25
    rtb.AppendText("بسم اللہ الرحمن الرحیم" & vbNewLine)
  Next
  f.Show()

  f.BeginInvoke(New Action(Of RichTextBox)(AddressOf RunFix), rtb)
End Sub

Sub RunFix(ByVal rtfControl As RichTextBox)
  rtfControl.Select(0, 0)
  rtfControl.ScrollToCaret()
End Sub

問題を解決しているように見える呼び出しを実行するハックBeginInvokeメソッドを追加しました。ScrollToCaret()

于 2012-06-04T14:32:06.713 に答える
0

も設定すると

rtb.Width = 500
rtb.Height = 500

その後、希望どおりに動作します。

私はそれが奇妙な行動であることを認めます。VS 2012 RC でも同じです。

于 2012-06-04T19:08:47.980 に答える