プロパティをちまちま作っていくのもめんどくさい&デザイナでやらないときりがないと思い、継承コントロールで縦書き指定してやることはできないのか? という部分に気が付いて、今度はそっちにシフトします。
まずは適当な名前でユーザーコントロールを作り
ソリューションエクスプローラーの「すべてのファイルを表示」を選んで
先ほど作ったコントロールのデザイナーの部分のコードを選択表示します。
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Control_tate
Inherits System.Windows.Forms.UserControl
'UserControl はコンポーネント一覧をクリーンアップするために dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()>
_
Protected Overrides Sub Dispose(ByVal
disposing As Boolean)
Try
If disposing AndAlso
components IsNot Nothing
Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows フォーム デザイナーで必要です。
Private components As
System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナーで必要です。
'Windows フォーム デザイナーを使用して変更できます。
'コード エディターを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()>
_
Private Sub
InitializeComponent()
components
= New System.ComponentModel.Container()
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class
こんな感じに表示されるかと思われ。
Inherits System.Windows.Forms.UserControl
この部分を編集します。
Inherits System.Windows.Forms.RichTextBox
「Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font」はリッチテキストコントロールにはないプロパティっぽいので、削除します。
おそらくはいけないだろうと思われますが、まずは単純に上記のようにリッチテキストを呼び出しました。
次に縦書き指定をしてやります。デザイナじゃない通常のコード画面に以下の指定をしてやって実行。
Public Sub New()
InitializeComponent()
Class_API.SendMessage(Me.Handle,
Class_API.EM_SETOPTIONS, Class_API.ECOOP_OR, Class_API.ES_VERTICAL)
End Sub
縦書きになりませんでした。
まぁ、リッチテキストのバージョンが4.1ではないためかな? と考慮いたします。
なら、DLLを参照設定して直接「Inherits」でVersion4.1を宣言できないか? と思っていろいろ調べてみましたが、DLLの参照設定ができない……
いろいろ試してみましたが、どうにも直接コントロールを配置できそうになさそうです。
とはいえ、プロパティをせっせと作るのはめんどくさいんだよなぁ……
なかなか思うとおりに行かない。
0 件のコメント:
コメントを投稿