2

フォームに複数行の TextBox コントロールがある Windows フォーム アプリケーションを C# で開発しています。

特定の (無関係な) 理由により、この TextBoxには TextBox コントロールの左側に垂直スクロールバーが必要です。もちろん解決策を探しましたが、何も見つかりませんでした...私の質問は次のとおりです。

1) TextBox コントロール (または TextBox または TextBoxBase から派生したユーザー コントロール) の自動垂直スクロールバーを右ではなく左に表示する方法はありますか? これは、すべてのスクロールが引き続きコントロールによって処理されるため、推奨される方法です。このような TextBox の RightToLeft プロパティを変更すると、実際にはスクロールバーが左に移動するため、ここで悪用されるハックが必要だと思います。

また

2) スクロールバーがなくても、TextBox がスクロールされたときに IMessageFilter 実装でインターセプトできるメッセージはありますか? つまり、ユーザーは矢印キーを使用してスクロールでき、テキストボックスは行を上下に移動しますが、それが発生したときに発生するメッセージが見つかりません。

これを達成する方法の別のアイデアはありますか?

追加する編集: テキストは水平方向に右揃えにする必要があります! そうでなければ、私はすでにそれを解決していたでしょう。

2014 年 11 月 3 日現在の新しい編集: わかりました、BenVlodgi のコメントの後、私は自分自身の正気について疑いを持ち始めました。RightToLeftそこで、テストプロジェクトを作成しましたが、設定がYesうまくいかなかった理由を今思い出しました。

下の画像は、その設定で左側にある通常の TextBox を示しています。左側にスクロールバー、右側にテキストがありますが、テキストが正しく表示されません。文末のピリオドは文の前に移動します。

2 番目の TextBox コントロールは、LarsTech の回答で提案されているもので、正しく機能し、句読点を移動しません。

2 つの TextBox コントロールの違い

したがって、私は LarsTech の回答に対する報奨金を受け取り、報酬を与えます。

4

2 に答える 2

1

RightToLeft プロパティを true に設定する。しかし、コンテンツも右から左になると言われているので、それで問題が解決するかどうかはわかりません...しかし、それはスクロールバーを左側に設定する方法です。

http://bytes.com/topic/c-sharp/answers/255138-scrollbar-position

于 2013-01-19T06:28:56.887 に答える