tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: Labelを90°回転させてデザインに張り付けたい
投稿日: 2016/07/14(Thu) 17:27
投稿者魔界の仮面弁士
> 作業しているのはWindowsフォームアプリケーションでやってます。

残念ながら、Windows Forms にその機能はありません。


(案1) ElementHost コントロールを貼り、その中に RotateTransform した WPF コンテンツを配置する

(案2) 自前で描画する(以下参考例)


Imports System.ComponentModel
Public Class VerticalLabel
    Inherits Label

    Protected Overrides Sub CreateHandle()
        MyBase.CreateHandle()
        AutoSize = False
        Text2 = Name
    End Sub
    Protected Overrides Sub OnPaint(e As PaintEventArgs)
        e.Graphics.RotateTransform(90.0F)
        Using b As New SolidBrush(ForeColor)
            e.Graphics.DrawString(Text2, Font, b, e.Graphics.VisibleClipBounds)
        End Using
        MyBase.OnPaint(e)
    End Sub

    <EditorBrowsable(EditorBrowsableState.Never)> _
    <Browsable(False)> _
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public Overrides Property Text As String
        Get
            Return ""
        End Get
        Set(value As String)
            MyBase.Text = ""
            Text2 = value
        End Set
    End Property

    Public Property Text2 As String
        Get
            Return _text2
        End Get
        Set(value As String)
            _text2 = value
            OnTextChanged(EventArgs.Empty)
        End Set
    End Property
    Private _text2 As String

    <EditorBrowsable(EditorBrowsableState.Never)> _
    <Browsable(False)> _
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    Public Overrides Property TextAlign As ContentAlignment
        Get
            Return MyBase.TextAlign
        End Get
        Set(value As ContentAlignment)
            MyBase.TextAlign = value
        End Set
    End Property
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。