tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルLabelを90°回転させてデザインに張り付けたい
記事No11698
投稿日: 2016/07/13(Wed) 10:29
投稿者耳たぶ黒
VB超初心者の耳たぶの黒と申します。
開発環境はvisualstudio2015 proを使用しております。
作業しているのはWindowsフォームアプリケーションでやってます。
やりたいことはLabelを90°回転させてデザインに張り付けたいのです。
昔はフォント名に@をつければ出来たなんて記事がありましたが、出来なかったです。
ご存知の方がいらしたら、アドバイス下さい。
宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: Labelを90°回転させてデザインに張り付けたい
記事No11699
投稿日: 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

[ツリー表示へ]
タイトルRe^2: Labelを90°回転させてデザインに張り付けたい
記事No11700
投稿日: 2016/07/19(Tue) 10:27
投稿者耳たぶ黒
魔界の仮面弁士さん、ありがとうございます。
案2の方でやってみます。今別件で手が付けられないので、片付き次第、試させていただきます。
失礼します。

[ツリー表示へ]