سلام دوستان
من مي خواستم زير فرمم يه سايه ايجاد كنم كه روي ويندوز بيفته.
چه كنم؟ :31:
:8:
Printable View
سلام دوستان
من مي خواستم زير فرمم يه سايه ايجاد كنم كه روي ويندوز بيفته.
چه كنم؟ :31:
:8:
البته چنین امکانی در دات نت وجود ندارد. یا حداقل من از آن بی خبرم.
اما یه دونه با عجله واست نوشتم که تقریبا همین کار رو انجام میده. میتونی از این کد ایده بگیری و حتی بهترش رو بنویسی.
کد:
Public Class Form1
Dim RightShadow As New Form
Dim LeftShadow As New Form
Private Sub Form1_LocationChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.LocationChanged
RightShadow.Height = Me.Height
RightShadow.Left = Me.Left + Me.Width
RightShadow.Top = Me.Top + 5
LeftShadow.Width = Me.Width
LeftShadow.Left = Me.Left + 5
LeftShadow.Top = Me.Top + Me.Height
End Sub
Private Sub Form1_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Resize
RightShadow.Height = Me.Height
RightShadow.Left = Me.Left + Me.Width
RightShadow.Top = Me.Top + 5
LeftShadow.Width = Me.Width
LeftShadow.Left = Me.Left + 5
LeftShadow.Top = Me.Top + Me.Height
End Sub
Private Sub Form1_Shown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shown
RightShadow.FormBorderStyle = Windows.Forms.FormBorderStyle.None
RightShadow.ShowInTaskbar = False
RightShadow.Show()
RightShadow.Height = Me.Height
RightShadow.BackColor = Color.Black
RightShadow.Width = 5
RightShadow.Left = Me.Left + Me.Width
RightShadow.Top = Me.Top + 5
RightShadow.Opacity = 0.3
'RightShadow.ShowInTaskbar = False
RightShadow.Enabled = False
LeftShadow.FormBorderStyle = Windows.Forms.FormBorderStyle.None
LeftShadow.ShowInTaskbar = False
LeftShadow.Show()
LeftShadow.Height = 5
LeftShadow.BackColor = Color.Black
LeftShadow.Width = Me.Width
LeftShadow.Left = Me.Left + 5
LeftShadow.Top = Me.Top + Me.Height
LeftShadow.Opacity = 0.3
LeftShadow.Enabled = False
End Sub
End Class
مرسی دوست عزیز منم دقیقا همین کارو کرده بودم ولی مشکلم ایِنه که میخوام سایم فید داشته باشه یعنی رفته رفته سایش محو بشه.
خوب سایه ای که ایجاد کردم هم محو شده هست دیگه. opacity رو 3/0 گذاشتم دیگه. غیر از اینه؟نقل قول:
اگه سایه منوها در ویندوز رو هم ببینی ، دقیقا این شکلیه.
ولی اگه میخوای حالت محو بودن بصورت گرادیانت در بیاد، جوابت منفیه. نمیشه.
نمیشه؟!!!! :18:نقل قول:
يه چيزايي شبيه چيزي كه ميخوام نوشتم ولي
از قسمت Form1_LocationChanged ايراد ميگيره (1)کد:Public Class Form1
Public Lsh(5) As Form
Public Dsh(5) As Form
'###################################################################################
Private Sub Form1_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
For i = 1 To 5
Lsh(i).Left = Me.Left + Me.Width
Lsh(i).Top = Me.Top + 5
Dsh(i).Left = Me.Left + 5
Dsh(i).Top = Me.Height + Me.Top
Next i
End Sub
'###################################################################################
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
For i = 1 To 5
Dim x As Integer
Dim Lshadow As New Form
x += 1
Lsh(x) = Lshadow
Lshadow.ShowInTaskbar = False
Lshadow.FormBorderStyle = FormBorderStyle.None
Lshadow.Show()
Lshadow.Left = Me.Left + Me.Width
Lshadow.Top = Me.Top + 5
Lshadow.Height = Me.Height - 5
Lshadow.Width = x
Lshadow.Opacity = 0.1
Lshadow.BackColor = Color.Black
Next
For i = 1 To 5
Dim x As Integer
Dim Dshadow As New Form
x += 1
Dsh(x) = Dshadow
Dshadow.Name = "d" & x.ToString
Dshadow.ShowInTaskbar = False
Dshadow.FormBorderStyle = FormBorderStyle.None
Dshadow.Show()
Dshadow.Left = Me.Left + 5
Dshadow.Top = Me.Height + Me.Top
Dshadow.Height = x
Dshadow.Width = Me.Width
Dshadow.Opacity = 0.1
Dshadow.BackColor = Color.Black
Next
End Sub
End Class
بايد گوشه ي سايه گرد بشه (2)
فكر ميكنم به جاي استفاره از فرم بايد راه بهتري داشته باشه. نه! :43:؟
این دیگه مشکلای قبلی رو نداره!!
ولی یه راه بهتر برای ایجاد سایه پیدا کردم که فعلا حسش نیست بنویسم (امتحان دارم) ولی اگه نوشتم میزارم.
:8:
کد:Public Class Form1
Public Lsh(5) As Form
Public Dsh(5) As Form
Private Sub Form1_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
Try
For i = 1 To 5
Lsh(i).Left = Me.Left + Me.Width
Lsh(i).Top = Me.Top + 5
Dsh(i).Left = Me.Left + 5
Dsh(i).Top = Me.Height + Me.Top
Next i
Catch ex As Exception
End Try
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Dim Gooshe As Integer
For i = 1 To 5
Dim x As Integer
Dim Lshadow As New Form
x += 1
Lsh(x) = Lshadow
Lshadow.ShowInTaskbar = False
Lshadow.FormBorderStyle = FormBorderStyle.None
Lshadow.Show()
Lshadow.Left = Me.Left + Me.Width
Lshadow.Top = Me.Top + 5
Lshadow.Height = Me.Height - 10 + Gooshe
Lshadow.Width = x
Lshadow.Opacity = 0.1
Lshadow.BackColor = Color.Black
Gooshe += 2
Next
Gooshe = 0
For i = 1 To 5
Dim x As Integer
Dim Dshadow As New Form
x += 1
Dsh(x) = Dshadow
Dshadow.Name = "d" & x.ToString
Dshadow.ShowInTaskbar = False
Dshadow.FormBorderStyle = FormBorderStyle.None
Dshadow.Show()
Dshadow.Left = Me.Left + 5
Dshadow.Top = Me.Height + Me.Top
Dshadow.Height = x
Dshadow.Width = Me.Width - 10 + Gooshe
Dshadow.Opacity = 0.1
Dshadow.BackColor = Color.Black
Gooshe += 2
Next
End Sub
End Class