PDA

View Full Version : تغییر رنگ حاشیه کنترل با یک رنگ دلخواه



Dariuosh
دوشنبه 29 بهمن 1386, 12:16 عصر
سلام
چطوری میشه رنگ Border یه کنترل رو عوض کرد

sinpin
دوشنبه 29 بهمن 1386, 12:36 عصر
سلام
چطوری میشه رنگ Border یه کنترل رو عوض کرد
http://barnamenevis.org/forum/showpost.php?p=467567&postcount=5

Dariuosh
دوشنبه 29 بهمن 1386, 13:04 عصر
شرمنده من زیاد از سینتکس های C سر در نمیارم میشه زحمت بکشید کد VB شو بزارید

amirsajjadi
دوشنبه 29 بهمن 1386, 19:43 عصر
با سلام
این هم تبدیل کد آقای sinpin به vb.net

PrivateShared WM_NCPAINT AsInteger = 133
PrivateShared WM_ERASEBKGND AsInteger = 20
PrivateShared WM_PAINT AsInteger = 15
<Runtime.InteropServices.DllImport("user32.dll")> _
PrivateSharedFunction GetDCEx(ByVal hwnd As IntPtr, ByVal hrgnclip As IntPtr, ByVal fdwOptions AsUInteger) As IntPtr
EndFunction
<Runtime.InteropServices.DllImport("user32.dll")> _
PrivateSharedFunction ReleaseDC(ByVal hwnd As IntPtr, ByVal hDC As IntPtr) AsInteger
EndFunction
ProtectedOverloadsOverridesSub WndProc(ByRef m As Message)
MyBase.WndProc(m)
If m.Msg = WM_NCPAINT OrElse m.Msg = WM_ERASEBKGND OrElse m.Msg = WM_PAINT Then
Dim hdc As IntPtr = GetDCEx(m.HWnd, CType(1, IntPtr), 1 Or 32)
If hdc <> IntPtr.Zero Then
Dim graphics As Graphics = Me.CreateGraphics
Dim borderColor As Color = Color.Black
Dim rectangle AsNew Rectangle(0, 0, Me.Width, Me.Height)
ControlPaint.DrawBorder(graphics, rectangle, borderColor, ButtonBorderStyle.Solid)
m.Result = CType(1, IntPtr)
ReleaseDC(m.HWnd, hdc)
EndIf
EndIf
EndSub