5.RichTextBox で左右のマージンを設定する(22_Rtf_05) (旧、SampleNo.264) |
1.RichTextBox で左右のマージンを設定する 左側の余白部分をクリックするとワードパッドや Word と同様に1行全体が選択できるようになる 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :System.Runtime.InteropServices 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.RichTextBox で左右のマージンを設定する |
Imports System.Runtime.InteropServices Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'テキストボックス及びリッチテキストボックスで左右のマージンを設定する '左右の余白を20ピクセル分設定 SendMessage(RichTextBox1.Handle, EM_SETMARGINS, EC_LEFTMARGIN Or EC_RIGHTMARGIN, (20 And &HFFFF) Or (20 * &H10000)) '左余白を20ピクセル分設定 SendMessage(RichTextBox2.Handle, EM_SETMARGINS, EC_LEFTMARGIN, 20) 'これで、左側の余白部分をクリックするとワードパッドや Word と同様に1行全体が選択できるようになる End Sub <DllImport("USER32.DLL", CharSet:=CharSet.Auto)> _ Private Shared Function SendMessage( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ ByVal lParam As Integer) As Integer End Function Private Const EM_SETMARGINS As Integer = &HD3 'リッチテキストボックスの左右の余白の幅を設定します Private Const EC_LEFTMARGIN As Integer = &H1 '左マージンを設定 Private Const EC_RIGHTMARGIN As Integer = &H2 '右マージンを設定 図1.上記設定前 図2.上記設後 リッチテキストボックスでテキストを表示した場合左側の枠線と文字が重なるように表示され見にくいので左側に少し余白を儲けたい場合等に使用して下さい。 又、これで左側の余白部分をクリックするとワードパッドや Word と同様に1行全体が選択できます。 但し、VB6.0 やワードパッドでは、余白部分にカーソルを持っていくとカーソルの形が変わるのですが、VB.NET 系では変わりません。(バグ Or 仕様?その他キャレット等の動作も違ったりします。) |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |