フォームに複数行の TextBox コントロールがある Windows フォーム アプリケーションを C# で開発しています。
特定の (無関係な) 理由により、この TextBoxには TextBox コントロールの左側に垂直スクロールバーが必要です。もちろん解決策を探しましたが、何も見つかりませんでした...私の質問は次のとおりです。
1) TextBox コントロール (または TextBox または TextBoxBase から派生したユーザー コントロール) の自動垂直スクロールバーを右ではなく左に表示する方法はありますか? これは、すべてのスクロールが引き続きコントロールによって処理されるため、推奨される方法です。このような TextBox の RightToLeft プロパティを変更すると、実際にはスクロールバーが左に移動するため、ここで悪用されるハックが必要だと思います。
また
2) スクロールバーがなくても、TextBox がスクロールされたときに IMessageFilter 実装でインターセプトできるメッセージはありますか? つまり、ユーザーは矢印キーを使用してスクロールでき、テキストボックスは行を上下に移動しますが、それが発生したときに発生するメッセージが見つかりません。
これを達成する方法の別のアイデアはありますか?
追加する編集: テキストは水平方向に右揃えにする必要があります! そうでなければ、私はすでにそれを解決していたでしょう。
2014 年 11 月 3 日現在の新しい編集: わかりました、BenVlodgi のコメントの後、私は自分自身の正気について疑いを持ち始めました。RightToLeft
そこで、テストプロジェクトを作成しましたが、設定がYes
うまくいかなかった理由を今思い出しました。
下の画像は、その設定で左側にある通常の TextBox を示しています。左側にスクロールバー、右側にテキストがありますが、テキストが正しく表示されません。文末のピリオドは文の前に移動します。
2 番目の TextBox コントロールは、LarsTech の回答で提案されているもので、正しく機能し、句読点を移動しません。
したがって、私は LarsTech の回答に対する報奨金を受け取り、報酬を与えます。