PDA

View Full Version : آموزش: شیشه ای کردن فرم در vb2010 بدون کد نویسی!



ahmad009
پنج شنبه 18 مهر 1392, 20:52 عصر
خیلی دنبال آموزش شیشه ای کردن فرم گشتم و هر چی تلاش میکردم به در بسته میخوردم تا اینکه این ها رو پیدا کردم:


آموزش:
ضمیمه رو دانلود کنید.

در قسمت toolbox اون ها رو اضافه کنید.
به فرم اضافه کنید (هر کدوم رو که میخواید)
در قسمت properties به قسمت dock برید و هر شکلی رو که میخواید انتخاب کنید.
کار تمومه. میتونید build کنید.
اگه نتونستید بگید تا آموزش تصویری بذارم. تو vs 2010 و vs 2013 تست شده.

Hossis
پنج شنبه 18 مهر 1392, 21:17 عصر
از شما تشکر وافر دارم که نتیجه زحمات خود را در اختیار همگان قرار می دهید!
خوبی این روش اینه که فقط فرم شفاف شده و کنترل ها شفاف نیستند.
همچنین شیشه مشجر هم هست!

Omid.R.A.Candy
پنج شنبه 18 مهر 1392, 21:32 عصر
از شما تشکر وافر دارم که نتیجه زحمات خود را در اختیار همگان قرار می دهید!
خوبی این روش اینه که فقط فرم شفاف شده و کنترل ها شفاف نیستند.
همچنین شیشه مشجر هم هست!


ببخشید با چه کدی می تونیم شیشه مشجر رو به همین شیشه های ساده تبدیلش کنیم؟

AMIN_SG
پنج شنبه 18 مهر 1392, 22:03 عصر
میتونید از دو کد زیر استفاده کنید
کد اول
Imports System.Runtime.InteropServices

Public Class Form1
<StructLayout(LayoutKind.Sequential)> _
Private Structure DWM_BLURBEHIND
Public dwFlags As Integer
Public fEnable As Boolean
Public hRgnBlur As IntPtr
Public fTransitionOnMaximized As Boolean
End Structure

Private Const DWM_BB_ENABLE As Integer = &H1
Private Const DWM_BB_BLURREGION As Integer = &H2
Private Const DWM_BB_TRANSITIONONMAXIMIZED As Integer = &H4

<DllImport("dwmapi.dll", PreserveSig:=False)> _
Private Shared Sub DwmEnableBlurBehindWindow(ByVal hWnd As IntPtr, ByRef pBlurBehind As DWM_BLURBEHIND)
End Sub

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)



''#Whatever region that you fill with black will become the glassy region
''# (in this example, the entire form becomes transparent)
Me.BackColor = Color.Black

''#Create and populate the blur-behind structure
Dim bb As DWM_BLURBEHIND
bb.dwFlags = DWM_BB_ENABLE
bb.fEnable = True
bb.hRgnBlur = Nothing

''#Enable the blur-behind effect
DwmEnableBlurBehindWindow(Me.Handle, bb)

End Sub

کدی دوم

Imports System.Runtime.InteropServices

Public Class Form1

#Region " AERO STYLE "
<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public CXleftWIDTH As Integer
Public CXrightWIDTH As Integer
Public CYtopHEIGHT As Integer
Public CYbottomHEIGHT As Integer
End Structure
<DllImport("dwmapi.dll")> _
Public Shared Function DwmExtendFrameIntoClientArea(ByVal hwnd As IntPtr, ByRef pmarinset As MARGINS) As Integer
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next

Dim margins As MARGINS = New MARGINS
margins.CXleftWIDTH = 2
margins.CYtopHEIGHT = 60
margins.CXrightWIDTH = 2
margins.CYbottomHEIGHT = 30
Dim hwnd As IntPtr = Me.Handle
Dim resulet As Integer = DwmExtendFrameIntoClientArea(hwnd, margins)
End Sub
#End Region
End Class

Omid.R.A.Candy
جمعه 19 مهر 1392, 00:26 صبح
میتونید از دو کد زیر استفاده کنید
کد اول
Imports System.Runtime.InteropServices

Public Class Form1
<StructLayout(LayoutKind.Sequential)> _
Private Structure DWM_BLURBEHIND
Public dwFlags As Integer
Public fEnable As Boolean
Public hRgnBlur As IntPtr
Public fTransitionOnMaximized As Boolean
End Structure

Private Const DWM_BB_ENABLE As Integer = &H1
Private Const DWM_BB_BLURREGION As Integer = &H2
Private Const DWM_BB_TRANSITIONONMAXIMIZED As Integer = &H4

<DllImport("dwmapi.dll", PreserveSig:=False)> _
Private Shared Sub DwmEnableBlurBehindWindow(ByVal hWnd As IntPtr, ByRef pBlurBehind As DWM_BLURBEHIND)
End Sub

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)



''#Whatever region that you fill with black will become the glassy region
''# (in this example, the entire form becomes transparent)
Me.BackColor = Color.Black

''#Create and populate the blur-behind structure
Dim bb As DWM_BLURBEHIND
bb.dwFlags = DWM_BB_ENABLE
bb.fEnable = True
bb.hRgnBlur = Nothing

''#Enable the blur-behind effect
DwmEnableBlurBehindWindow(Me.Handle, bb)

End Sub

کدی دوم

Imports System.Runtime.InteropServices

Public Class Form1

#Region " AERO STYLE "
<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public CXleftWIDTH As Integer
Public CXrightWIDTH As Integer
Public CYtopHEIGHT As Integer
Public CYbottomHEIGHT As Integer
End Structure
<DllImport("dwmapi.dll")> _
Public Shared Function DwmExtendFrameIntoClientArea(ByVal hwnd As IntPtr, ByRef pmarinset As MARGINS) As Integer
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next

Dim margins As MARGINS = New MARGINS
margins.CXleftWIDTH = 2
margins.CYtopHEIGHT = 60
margins.CXrightWIDTH = 2
margins.CYbottomHEIGHT = 30
Dim hwnd As IntPtr = Me.Handle
Dim resulet As Integer = DwmExtendFrameIntoClientArea(hwnd, margins)
End Sub
#End Region
End Class

هیش کدوم کار نمی کنند!

ahmad009
جمعه 19 مهر 1392, 10:14 صبح
از شما تشکر وافر دارم که نتیجه زحمات خود را در اختیار همگان قرار می دهید!
خوبی این روش اینه که فقط فرم شفاف شده و کنترل ها شفاف نیستند.
همچنین شیشه مشجر هم هست!

خیلی ممنون.

rm.manesh
جمعه 19 مهر 1392, 18:56 عصر
با سلام
ممنون از آموزش خوبتان
چگونه میتوان با کد نویسی یک پانل را به صورت شیشه ای در آورد؟
با تشکر

AMIN_SG
جمعه 19 مهر 1392, 19:29 عصر
هیش کدوم کار نمی کنند!

باید backcolor فرمتون رو مشکی بکنید

Omid.R.A.Candy
جمعه 19 مهر 1392, 20:20 عصر
باید backcolor فرمتون رو مشکی بکنید



خیلی خوب تو کدهای بالا هر رنگ سیاه تبدیل به شیشه ای میشه.حالا چطور می تونیم مثلا بجای سیاه رنگ دیگه ای رو معرفی بکنیم تا رنگ سیاه رو بتونیم تو فرممون استفاده کنیم؟ (البته تو کدهای پارت یک)

biyarjomandi
جمعه 19 مهر 1392, 20:46 عصر
ای وای ....این همه زحمت و کد نویسی چه خبره بابا.....فقط خصوصیت Opecity فرمتون رو کم کنید تا شیشه ای بشه . به همین سادگی ..

Hossis
جمعه 19 مهر 1392, 22:32 عصر
ای وای ....این همه زحمت و کد نویسی چه خبره بابا.....فقط خصوصیت Opecity فرمتون رو کم کنید تا شیشه ای بشه . به همین سادگی ..
دیگه این قدر هم خودشون می فهمیدن
مشکل این جا بوده که با کم کردن این خصوصیت، علاوه بر فرم، همه کنترهای اون هم ناپدید و کم رنگ میشه ولی در روش فوق، فقط سطح فرم کم رنگ میشه اون هم با افکت زیبا

ahmad009
شنبه 20 مهر 1392, 09:57 صبح
با سلام
ممنون از آموزش خوبتان
چگونه میتوان با کد نویسی یک پانل را به صورت شیشه ای در آورد؟
با تشکر
شرمنده نیمیدونم. اگه کد نویسی بلد بودم دنبال این جور چیزا نمیرفتم.:لبخند:

bitcob589
شنبه 20 مهر 1392, 15:28 عصر
میتونید از دو کد زیر استفاده کنید
کد اول
Imports System.Runtime.InteropServices

Public Class Form1
<StructLayout(LayoutKind.Sequential)> _
Private Structure DWM_BLURBEHIND
Public dwFlags As Integer
Public fEnable As Boolean
Public hRgnBlur As IntPtr
Public fTransitionOnMaximized As Boolean
End Structure

Private Const DWM_BB_ENABLE As Integer = &H1
Private Const DWM_BB_BLURREGION As Integer = &H2
Private Const DWM_BB_TRANSITIONONMAXIMIZED As Integer = &H4

<DllImport("dwmapi.dll", PreserveSig:=False)> _
Private Shared Sub DwmEnableBlurBehindWindow(ByVal hWnd As IntPtr, ByRef pBlurBehind As DWM_BLURBEHIND)
End Sub

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)



''#Whatever region that you fill with black will become the glassy region
''# (in this example, the entire form becomes transparent)
Me.BackColor = Color.Black

''#Create and populate the blur-behind structure
Dim bb As DWM_BLURBEHIND
bb.dwFlags = DWM_BB_ENABLE
bb.fEnable = True
bb.hRgnBlur = Nothing

''#Enable the blur-behind effect
DwmEnableBlurBehindWindow(Me.Handle, bb)

End Sub

کدی دوم

Imports System.Runtime.InteropServices

Public Class Form1

#Region " AERO STYLE "
<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public CXleftWIDTH As Integer
Public CXrightWIDTH As Integer
Public CYtopHEIGHT As Integer
Public CYbottomHEIGHT As Integer
End Structure
<DllImport("dwmapi.dll")> _
Public Shared Function DwmExtendFrameIntoClientArea(ByVal hwnd As IntPtr, ByRef pmarinset As MARGINS) As Integer
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error Resume Next

Dim margins As MARGINS = New MARGINS
margins.CXleftWIDTH = 2
margins.CYtopHEIGHT = 60
margins.CXrightWIDTH = 2
margins.CYbottomHEIGHT = 30
Dim hwnd As IntPtr = Me.Handle
Dim resulet As Integer = DwmExtendFrameIntoClientArea(hwnd, margins)
End Sub
#End Region
End Class
از کجا می توانdllفایل dwmapi.dll دانلود نمود.

rm.manesh
شنبه 20 مهر 1392, 16:43 عصر
ما که ندونستیم!!!!
چگونه میتوان با کد نویسی یک پانل را به صورت شیشه ای در آورد؟

hosein320
شنبه 20 مهر 1392, 16:54 عصر
این پنل قابلیت شیشه ای دارد

bitcob589
شنبه 20 مهر 1392, 18:04 عصر
این پنل قابلیت شیشه ای دارد

نحوه استفاده با کد بالا توضیح دهید

Hossis
شنبه 20 مهر 1392, 20:30 عصر
خیلی دنبال آموزش شیشه ای کردن فرم گشتم و هر چی تلاش میکردم به در بسته میخوردم تا اینکه این ها رو پیدا کردم:
تو vs 2010 و vs 2013 تست شده.
من تو vs 2010 خواستم به تولباکس اضافه کنم ولی نشد!

ahmad009
شنبه 20 مهر 1392, 23:24 عصر
چه اروری مشاهده کردید؟
این فایل تست شده و مطمئنه.
به احتمال زیاد ایراد از نرم افزار شماست.