Если пишу в коде:
- Код: Выделить всё
Label.BackColor = System.Drawing.Color.Empty
- Код: Выделить всё
Label.BackColor = System.Drawing.Color.Transparent
Label.BackColor = System.Drawing.Color.Empty
Label.BackColor = System.Drawing.Color.Transparent
zeny писал(а):Вот нашел, может кому-нибудь понадобится:
- Код: Выделить всё
Public Class TransparentLabel
Inherits Control
Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
'do nothing
End Sub
Private bPaintOnce As Boolean = False 'flag to prevent infinite loop
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
If (bPaintOnce = False) Then
bPaintOnce = True
Me.Visible = False
Me.Parent.Invalidate(Me.Bounds) 'more efficient than me.Parent.Refresh
Me.Parent.Update() 'force parent to redraw only invalidated regions
Me.Visible = True
Return
Else
bPaintOnce = False
Dim g As Graphics = e.Graphics
Dim myBrush As SolidBrush = New SolidBrush(Me.ForeColor)
g.DrawString(Me.Text, Me.Font, myBrush, 1, 1)
g.Dispose()
End If
End Sub
End Class
ну и потом соответственно:
'В form_load или после InitializeComponent
Dim myLabel As New TransparentLabel
Me.Controls.Add(myLabel)
myLabel.BringToFront
myLabel.Left=1
myLabel.Top=1
...
dr.MIG писал(а):Странно, у меня в VS2005 код Label1.BackColor = Color.Transparent делает Label прозрачным, задание BackColor в дизайнее форм в Transparent (вкладка Web) работает аналогично.
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawString("Label1", Me.Font, New SolidBrush(Me.ForeColor), x, y) 'замени x и y на свои значения
End Sub
dr.MIG писал(а):А... Понятно.
Так может отказаться от Label в пользу:
- Код: Выделить всё
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawString("Label1", Me.Font, New SolidBrush(Me.ForeColor), x, y) 'замени x и y на свои значения
End Sub
Call PictureBox1_Paint (???)
Спасибо.Хакер писал(а):Такие просьбы бессмыслено помещать в подписи, и при этом постить только в разделах, которые я не читаю регулярно.Подпись NeverGon'а писал(а):Пожалуйста, верните на счетчик мои 16 сообщений
Такие просьбы надо слать мне в личку.
Подпись NeverGon'а писал(а):Пожалуйста, верните на счетчик мои 16 сообщений
Private Sub DrawLabelOnPicture(ByVal text As String, ByVal color As Color, ByVal target As PictureBox, ByVal grx As Graphics)
' For alignment center
Dim sf As New StringFormat()
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
'Draw String centered on picture
Dim drawBounds As Rectangle = target.Bounds
drawBounds.X -= target.Location.X - 1
drawBounds.Y = 1
grx.DrawString(text, New Font("Tahoma", 8, FontStyle.Regular), New SolidBrush(color), drawBounds, sf)
End Sub
Private Sub imgLogo_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles imgLogo.Paint
DrawLabelOnPicture("VBStreets Forever", Color.Black, imgSettings_main, e.Graphics)
End Sub
Вернуться в Visual Basic для мобильных устройств
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16