色々なプロパティを触って見ても、なかなか、上手く行きません。
勿論、そんな、ユーザーコントロールを作ってしまう手もあるのでしょうが ... 。
ここでは、簡単に、行きます。 標準のコントロールを使って、右揃え!。
基本的に、コントロールの Label は 左揃え です。
色々、弄繰り廻しても、 左揃え です。
でも、幾つかの Label を配置して、それを 右揃え に したい場合だって ありますよね。
ここでは、 TextBox を流用して、 見た目を Label に変える 方針で、 以下に説明します。
Designer でコントロールを配置する際に、 Label ではなく、 TextBox を配置して下さい。
但し、 その名前を、 他の TextBox 群と区別する為に、 固有の名称を与えます。
この例では、 普通の TextBox は TextBoxN* 、 Label もどき に変換するものは TextBoxLR_N* です。
TextBoxLR_N* は TextBox Label Right-align のつもり。.
言い換えれば、 TextBoxLR_ を含む名前で命名された TextBox を Label の様に表示させます。ctrl.Name. に続く箇所で .StartsWith("ほにゃらら") に変えてもいいでしょう。 この部分は適宜に。.
実行時に、 Load Event で、一括して、 該当 TextBox の Propaty を変換してしまいます。
こんな感じですね。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TextBox Named 'TextBoxLR_*' Show Like Label
'Can Copy Text To Clipboard
For Each ctrl In Me.Controls
If ctrl.GetType Is GetType(TextBox) And ctrl.Name.Contains("TextBoxLR_") Then
ctrl.TextAlign = HorizontalAlignment.Right
ctrl.BorderStyle = BorderStyle.None
ctrl.BackColor = SystemColors.Control
ctrl.ReadOnly = True
End If
Next
Me.TextBoxLR_1.Text = "File"
Me.TextBoxLR_2.Text = "Strings"
Me.TextBoxLR_3.Text = "URL"
End Sub
End Class
Designer の画面と、実行時の画面は、 この通りです。
この例では、TextBoxLR_3 のみ、最初から、BorderStyle = BorderStyle.None で設定してあります(Designer で)。
これは、実行時の表示画面のイメージを掴む為で、 実際の運用では、指定は不要です。 他の Control 参照。.
尚、Label の Text はクリップボードへのコピーが標準では出来ませんが、
この方法では、 TextBox もどき(そのもの) ですから、 すんなり、コピー出来てしまいます。
Label 状態で表示させていると見せ掛けて、その実、コピーも可能!なんて裏技にも どうぞ。 :) 。
0 件のコメント:
コメントを投稿