الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده ضروريه في الستيتيو بارstatusbar

بدأه PRO.M في 19 ديسمبر 2008 · 6 رد · 683 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن اعرف كيف اخلي شريط الستيتوس بار يكون بالاسفل اذا كان الفورم بيشتغل على كامل الشاشه

وكيف اظهر التاريخ والوقت فيه بدون مااستخدم ليبل واداة التايمر

الفيجوال بيسك .نت

شكرا

تم تعديل هذه المشاركة بواسطة PRO.M في 19 ديسمبر 2008 في 22:07

#2

مرحباً أخي الكريم .

بدون Label ممكن لكن بدون Timer غير محبذ :S .

المثال التالي يحتاج منك إضافة StatusBar إلى الـ Form1, أعلم أنك ستجد الكود طويل لكن صدقني كُل المحتوى لشكل منسق ( Graphics ) .

Public Class Form1

Private WithEvents Timer1 As New Timers.Timer(900)

Private Rect As Rectangle

Private Sub StatusStrip1_MouseUp(ByVal Sender As Object, ByVal E As System.Windows.Forms.MouseEventArgs) Handles StatusStrip1.MouseUp

If E.X >= Rect.Left Then

Process.Start("TimeDate.CPL")

End If

End Sub

Private Sub StatusStrip1_Paint(ByVal Sender As Object, ByVal E As System.Windows.Forms.PaintEventArgs) Handles StatusStrip1.Paint

Dim G As Graphics = E.Graphics

Dim ClWidth As Integer = CInt((Font.Height / 2) * Now.ToLocalTime.ToString.Length)

Rect = New Rectangle(Sender.Width - ClWidth, 0, ClWidth, Sender.Height)

Dim LG As New Drawing2D.LinearGradientBrush(CType(Sender.ClientRectangle, Rectangle), Color.FromArgb(150, 255, 255, 255), Color.FromArgb(0, 0, 0, 0), Drawing2D.LinearGradientMode.BackwardDiagonal)

G.FillRectangle(New SolidBrush(Color.FromArgb(0, 0, 35)), Sender.ClientRectangle)

G.FillRectangle(LG, Sender.ClientRectangle)

G.FillRectangle(Brushes.Black, Rect)

ControlPaint.DrawBorder3D(G, Rect, Border3DStyle.Raised, Border3DSide.Bottom)

G.DrawString(Now.ToLocalTime, Font, Brushes.Lime, (Rect.Left + (ClWidth / 15)), (Rect.Top + (Rect.Height * 0.25)))

LG = New Drawing2D.LinearGradientBrush(Rect, Color.FromArgb(150, 255, 255, 255), Color.FromArgb(0, 0, 0, 0), Drawing2D.LinearGradientMode.ForwardDiagonal)

G.FillRectangle(LG, Rect)

End Sub

Private Sub Timer1_Elapsed(ByVal Sender As Object, ByVal E As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed

StatusStrip1.Invalidate()

End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Timer1.Enabled = True

End Sub

End Class

تحياتي BasharVS .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 19 ديسمبر 2008 في 23:11

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

الله يعطيك العافيه

الكود حلو بس المشكله ان باقي الستيتو بار مايطلع بالاسفل بيكون مكانه بنفس المكان عالفورم

لما يشتغل الفورم يكون بالنص مش في الاسفل

ارجو المساعده

#4

مرحباً أخي الكريم :

إنك كنت تقصد أنك تريد الـ StatusBar يعرض دائماً في نقطة مركز الفورم مع إعادة تحجيمه بالنسبة لخظ العرض, يمكنك تغير الخاصية الإفتراضية Dock = DockStyle.Bottom إلى Dock = DockStyle.None ومن ثم تغير الخاصية Anchor والتي تحوي في مربع تحريرها ( أربع مستطيلات, اثنين عاموديان و اثنين أخران أفقيان ) عليك تحديد الأفقيان فقط بعد ذلك انقل الـ StatusBar الى منصف الـ Form1 بالنسبة الى خط الطول

أو إضافة الكود التالي :

Private Sub Form1_SizeChanged( Byval Sender AS System.Object, Byval Ev As System.EventArgs ) Handles MyBase.SizeChanged

If StatusBar1.Dock = DockStyle.Bottom Then

StatusBar1.Dock = DockStyle.None

End If

Dim CY As Integer = CInt(( Height / 2) - (StatusBar1.Height /2))

StatusBar1.Left = 0

StatusBar1.Top = CY

StatusBar1.Width = Me.Width

End Sub

تحياتي BasharVS .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 20 ديسمبر 2008 في 13:48

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

شكرا لك

جربت الطريقه بس الستيتيو صار يظهر بالنص وانا اريده ان يظهر في الاسفل

هاذي المشكله عندي اذا كبر حجم الفورم بالرن يكون الستيتيو بالنص اريده في الاسفل اثناء التشغيل

#6

مرحباً أخي الكريم .

العفو .

إذا كان StatusBar.Dock = DockStyle.Bottom فسيظهر الـ StatusBar دائماً في الأسفل حتى إذا غيرت حجم الـ Form . إذا كانت المشكلة ان الـ Form تحوي تحكم أخر Control وخاصية Dock = DockStyle.Bottom ماعليك سوى النقر بالزر اليميني RightClick من الـ Mouse على الـ StatusBar ثم نقر على ( SendToBack ) .

تحياتي BasharVS .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#7

شكرا اخوي تعبتك معاي

المشكله بالفيجوال بيسك وليست في الاداه

بثبت البرنامج من جديد لان طلعلي اكثر من مشكله مع كل اداه استخدمها

مواضيع مشابهة