4

私の C# RichTextBox では、垂直スクロール バーの上部にある上向き矢印をクリックするのと同じことをプログラムで実行したいと考えています。これにより、RichTextBox の表示が 1 行上に移動します。これのコードは何ですか?ありがとう!

4

4 に答える 4

11

これが私がすることです:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg, 
                               UIntPtr wParam, IntPtr lParam);

次に、電話します。

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1));

うまくいくようですが、少し調整する必要があるかもしれません。

お役に立てば幸いです。

于 2008-10-15T18:41:11.807 に答える
1

今後の参考のために、EM_LINESCROLL メッセージは、スクロール位置を設定するために複数行の編集コントロールに送信するものです。縦または横にスクロールできます。詳細については、 MSDNを参照してください。

文字インデックス (EM_LINEINDEX で取得できます) を設定し、RichEdit.ScrollToCaret を呼び出すリッチ エディット選択メソッドを使用することもできます。

RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0);
RichEdit.ScrollToCaret();

これにより、その行が編集コントロールの一番上までスクロールされます。

于 2008-10-15T20:09:42.127 に答える
0

window.scrollBy(0,20);

これにより、ウィンドウがスクロールされます。20 は、私が過去に使用したおおよその値で、通常は 1 行に相当します... しかし、もちろん、フォント サイズは実際の 1 行の距離に影響を与える可能性があります。

于 2008-10-15T18:17:01.433 に答える
0

リッチ テキスト ボックスのスクロール コントロールを取得できる場合は、その SmallChange プロパティを取得し、それを使用してテキストをスクロールできるはずです。

于 2008-10-15T18:29:12.237 に答える