環境:VB.NET
SendMessageを使用することで文字の位置をContentAlignmentにそって修正することができたのですが、行間(または縦サイズ)の変更する方法を探しています。
できましたらSendMessageを使用した方法を教えていただけたら幸いです
一応使用されるであろうDLLのサンプルを記載します
VB.NET
1Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _ 2 (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As SRECT) As Integer
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
TextBox の基となっている Edit Control のドキュメントをご覧ください。行間についての記述はありません。RichTextBox を使うよう先方と交渉してください。TextBox でなければならない理由は無いと思います。
投稿2017/05/08 14:25
総合スコア28660
0
TextBoxではわかりませんでしたが、
RichTextBoxでは以下のコードで実現可能です。
VB.NET
1Imports System.Runtime.InteropServices 2 3Public Class Form1 4 5 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByRef lParam As PARAFORMAT2) As Integer 6 7 Private Const EM_SETPARAFORMAT As Integer = 1095 8 Private Const PFM_LINESPACING As UInteger = 256 9 10 Public Structure PARAFORMAT2 11 Public cbSize As UInteger 12 Public dwMask As UInteger 13 Public wNumbering As Short 14 Public wReserved As Short 15 Public dxStartIndent As Integer 16 Public dxRightIndent As Integer 17 Public dxOffset As Integer 18 Public wAlignment As Short 19 Public cTabCount As Short 20 <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)> 21 Public rgxTabs() As Integer 22 Public dySpaceBefore As Integer 23 Public dySpaceAfter As Integer 24 Public dyLineSpacing As Integer 25 Public sStyle As Short 26 Public bLineSpacingRule As Byte 27 Public bOutlineLevel As Byte 28 Public wShadingWeight As Short 29 Public wShadingStyle As Short 30 Public wNumberingStart As Short 31 Public wNumberingStyle As Short 32 Public wNumberingTab As Short 33 Public wBorderSpace As Short 34 Public wBorderWidth As Short 35 Public wBorders As Short 36 End Structure 37 38 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 39 Dim size As Integer = Marshal.SizeOf(GetType(PARAFORMAT2)) 40 Dim pf As PARAFORMAT2 = New PARAFORMAT2 41 pf.cbSize = CType(size, UInteger) 42 'pf.rgxTabs = new int[MAX_TAB_STOPS]; 43 pf.dwMask = (pf.dwMask Or PFM_LINESPACING) 44 pf.bLineSpacingRule = 4 45 '※ここで行間を設定します 46 pf.dyLineSpacing = 300 47 Dim start As Integer = RichTextBox1.SelectionStart 48 Dim length As Integer = RichTextBox1.SelectionLength 49 RichTextBox1.SelectAll() 50 SendMessage(RichTextBox1.Handle, EM_SETPARAFORMAT, IntPtr.Zero, pf) 51 RichTextBox1.Select(start, length) 52 End Sub 53End Class
投稿2017/05/04 08:52
総合スコア345
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
申し訳ありません、リッチテキストボックスのことはわかるのですが先方よりテキストボックスでの実装となっておりましてTextBoxとして記載をしていました
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/09 00:51