11-06-14, 05:42 PM
11-06-14, 06:45 PM
.....
منقول مع تعديل بسيط ليناسب طلبك
أضف أداة ToolTip1
.....
أضف أداة ToolTip1
كود :
#Region " ToolTip "
Shadows ToolTipFont As New Font("Times New Roman", 14, FontStyle.Bold) '<<<<<<<<<<<< خط الكتابة
Shadows ToolTipBackColor As Color = Color.Green '<<<<<<<<<<<< لون الخلفية
Shadows ToolTipForeColor As Color = Color.White '<<<<<<<<<<<< لون الكتابة
Dim ToolTip As New ToolTip
Dim ToolTipHPadding As Byte = 10
Dim ToolTipVPadding As Byte = 10
Private Sub ToolTip1_Popup(ByVal sender As Object, ByVal e As PopupEventArgs) Handles ToolTip1.Popup
e.Cancel = True
ToolTip.OwnerDraw = True
RemoveHandler ToolTip.Draw, AddressOf ToolTip_Draw
AddHandler ToolTip.Draw, AddressOf ToolTip_Draw
RemoveHandler ToolTip.Popup, AddressOf ToolTip_Popup
AddHandler ToolTip.Popup, AddressOf ToolTip_Popup
RemoveHandler e.AssociatedControl.MouseLeave, AddressOf TooTip_MouseLeave
AddHandler e.AssociatedControl.MouseLeave, AddressOf TooTip_MouseLeave
Dim sz As Size = TextRenderer.MeasureText(ToolTip1.GetToolTip(e.AssociatedControl), ToolTipFont)
Dim pt As New Point(-((sz.Width - e.AssociatedControl.Width) / 2) - (ToolTipHPadding / 2), -(sz.Height + ToolTipVPadding + 2))
ToolTip.Show(ToolTip1.GetToolTip(e.AssociatedControl), e.AssociatedControl, pt, ToolTip1.AutoPopDelay)
End Sub
Private Sub TooTip_MouseLeave(ByVal sender As Object, ByVal e As EventArgs)
ToolTip.Hide(sender)
End Sub
Private Sub ToolTip_Popup(ByVal sender As Object, ByVal e As PopupEventArgs)
e.ToolTipSize = TextRenderer.MeasureText(ToolTip1.GetToolTip(e.AssociatedControl), ToolTipFont)
e.ToolTipSize = Size.Add(e.ToolTipSize, New Size(ToolTipHPadding, ToolTipVPadding))
End Sub
Private Sub ToolTip_Draw(ByVal sender As Object, ByVal e As DrawToolTipEventArgs)
If e.ToolTipText.Trim = "" Then
ToolTip.Hide(sender)
Exit Sub
End If
Dim format As New StringFormat(StringFormatFlags.NoWrap)
If Me.RightToLeft Then format.FormatFlags += StringFormatFlags.DirectionRightToLeft
format.Alignment = StringAlignment.Center
format.LineAlignment = StringAlignment.Center
e.Graphics.Clear(ToolTipBackColor)
e.Graphics.DrawString(e.ToolTipText, ToolTipFont, New SolidBrush(ToolTipForeColor), e.Bounds, format)
End Sub
#End Region.....
11-06-14, 06:50 PM
ToolTip ف الأصل عبارة عن Form يتشابه ف تكوينه مع MessageBox لأنه يمتلك الخاصية Show التي مصدرها الأصلي هو IWin32Window Interface
و لو محتاج تصنعه من الصفر هذا ليس أمرا صعبا يمكن ان تأخذ أي Form و تغيير في صفاته ثم تظهرة و تخفيه في المكان المطلوب علي الشاشة طبقا لإحتياجك
هناك مثال في MSDN يوضح لك كيفية التعديل علي ToolTip و لكنه لا يصنع ToolTip من الصفر
في اللينك التالي ستجد المثال الخاص ب مايكروسوفت
اللينــــــــــــــــــــــك
في المنتدي القديم كنت كتبت MessageBox من الصفر تقريبا.....أعتقد انك ممكن تستخدم نفس الفكرة الموجودة به لكن للأسف أنا لا أعلم مكان اللينك لهذا الموضوع في المنتدي القديم
عموما سأحاول أن أكتب لك كيفية صناعة ToolTip كونترول من الصفر ..إن شاء الله ربما غدا أو بعد غد أستطيع أن أضع لك الكود ف الموقع هنا
و لو محتاج تصنعه من الصفر هذا ليس أمرا صعبا يمكن ان تأخذ أي Form و تغيير في صفاته ثم تظهرة و تخفيه في المكان المطلوب علي الشاشة طبقا لإحتياجك
هناك مثال في MSDN يوضح لك كيفية التعديل علي ToolTip و لكنه لا يصنع ToolTip من الصفر
في اللينك التالي ستجد المثال الخاص ب مايكروسوفت
اللينــــــــــــــــــــــك
في المنتدي القديم كنت كتبت MessageBox من الصفر تقريبا.....أعتقد انك ممكن تستخدم نفس الفكرة الموجودة به لكن للأسف أنا لا أعلم مكان اللينك لهذا الموضوع في المنتدي القديم
عموما سأحاول أن أكتب لك كيفية صناعة ToolTip كونترول من الصفر ..إن شاء الله ربما غدا أو بعد غد أستطيع أن أضع لك الكود ف الموقع هنا
13-06-14, 03:52 PM
بورك فيك أخينا سعود لكن لعل مثال أخينا vbnet جزاه الله خيراً قد أتى بالمطلوب ...
لكن أخي vbnet ، عندما يتم تكبير اي زر button فإنه تبتعد رسالة التنبيه من الزر كثيراً ، لعل في الشفرة الكثير من الأمور التي أجهلها لكن لا يمنع من تعلمها هنا ، لعلك لو وضحت لي طريقة تحكمي بالمقاس المطلوب وكذلك التباعد المطلوب.
أخي silverlight لعلي ما أردته هو الحصول على النتيجة المطلوبة بأقل التكاليف ، لا أريد أن اذهب بعيداً لكن هذه المسألة ليست مسألة تخصص بالنسبة لي لعل الحصول على النتيجة سريعاً في بعض الأمور يكون حل مناسباً جداً حتى يتم التركيز على أمور أخرى.
ومع ذلك لعل النتيجة التي تبنيها لنا يكون فيها النفع الكثير ، منتظر ردك أخي silverlight.
لكن أخي vbnet ، عندما يتم تكبير اي زر button فإنه تبتعد رسالة التنبيه من الزر كثيراً ، لعل في الشفرة الكثير من الأمور التي أجهلها لكن لا يمنع من تعلمها هنا ، لعلك لو وضحت لي طريقة تحكمي بالمقاس المطلوب وكذلك التباعد المطلوب.
أخي silverlight لعلي ما أردته هو الحصول على النتيجة المطلوبة بأقل التكاليف ، لا أريد أن اذهب بعيداً لكن هذه المسألة ليست مسألة تخصص بالنسبة لي لعل الحصول على النتيجة سريعاً في بعض الأمور يكون حل مناسباً جداً حتى يتم التركيز على أمور أخرى.
ومع ذلك لعل النتيجة التي تبنيها لنا يكون فيها النفع الكثير ، منتظر ردك أخي silverlight.
13-06-14, 08:01 PM
تقريبا أنا انتهيت من كتابة الكود ...........كان يهمني جدا يكون مشابه تماما لنسخة مايكروسوفت و بعد ذلك سيكون التعديل عليه أمر سهل لأي مبرمج ب يفهم قليلا في GDI
طبعا في نسخة مايكروسوفت هم يستخدمون Native Code لكن في النسخة التي أحاول كتابتها أجتهد في أن أستخدم Manged Code
يوجد في موقع CodeProject بعض الأمثلة الجيدة أحدهما يتستخدم Managed Code و هو بلغة الفيجوال بيسك.....لكنه ليس الافضل.....عموما أفضل الأمثلة التي رأيتها في نفس الموقع هو مثال يستخدم Native Methods و لكن كما قلت سابقا لا أريد أن استخدم هذا الأسلوب
المشكلة التي أحاول حلها حاليا iهي ضبط مكان ظهور ToolTip ليتناسب مع اي كونترول يستخدم معه بحيث يكون ملاصقا له تقريبا
طبعا في نسخة مايكروسوفت هم يستخدمون Native Code لكن في النسخة التي أحاول كتابتها أجتهد في أن أستخدم Manged Code
يوجد في موقع CodeProject بعض الأمثلة الجيدة أحدهما يتستخدم Managed Code و هو بلغة الفيجوال بيسك.....لكنه ليس الافضل.....عموما أفضل الأمثلة التي رأيتها في نفس الموقع هو مثال يستخدم Native Methods و لكن كما قلت سابقا لا أريد أن استخدم هذا الأسلوب
المشكلة التي أحاول حلها حاليا iهي ضبط مكان ظهور ToolTip ليتناسب مع اي كونترول يستخدم معه بحيث يكون ملاصقا له تقريبا
14-06-14, 12:00 AM
أخي vbnet
حقيقة العمل ابداع بورك فيك وغفر الله لك ولوالديك ووالدينا ولنا اجمعين.
تعديل: ظهرت مشكلة أخي وهي عندما انتقل من زر إلى آخر دون المرور على اي أداة أخرى يعني انتقل مباشرة من زر رقم 1 إلى زر رقم 2 فإن التوضيح الخاص بالزر لا يظهر كما يجب ولكن يظهر التوضيح اسفل الزر ولا يكون مكتوب فيه اي نص.
أخينا silverlight ،،، بانتظار عملك واسأل الله التوفيق لك فيه ، واسأل الله أن انتفع منه كما انتفعت من عمل أخينا vbnet.
لدي سؤال ، رأيت الكثير ممن يقول مثل هذه العبارات ( Native Code ، Manged Code )انا اعلم معناها كعلم نظري يعني بمعنى انها الشفرة المُدارة والشفرة ربما المحايدة ، لكن كواقع برمجي لا اعلم عنها الكثير كيف اعرف ان هذه الشفرة من النوع الأول أو النوع الثاني ؟ <<< اعلم انه سؤال خارج الموضوع ولكن لعلنا نستفيد منه لأنه طرح بالموضوع وفي سياق المسألة.
حقيقة العمل ابداع بورك فيك وغفر الله لك ولوالديك ووالدينا ولنا اجمعين.
تعديل: ظهرت مشكلة أخي وهي عندما انتقل من زر إلى آخر دون المرور على اي أداة أخرى يعني انتقل مباشرة من زر رقم 1 إلى زر رقم 2 فإن التوضيح الخاص بالزر لا يظهر كما يجب ولكن يظهر التوضيح اسفل الزر ولا يكون مكتوب فيه اي نص.
أخينا silverlight ،،، بانتظار عملك واسأل الله التوفيق لك فيه ، واسأل الله أن انتفع منه كما انتفعت من عمل أخينا vbnet.
لدي سؤال ، رأيت الكثير ممن يقول مثل هذه العبارات ( Native Code ، Manged Code )انا اعلم معناها كعلم نظري يعني بمعنى انها الشفرة المُدارة والشفرة ربما المحايدة ، لكن كواقع برمجي لا اعلم عنها الكثير كيف اعرف ان هذه الشفرة من النوع الأول أو النوع الثاني ؟ <<< اعلم انه سؤال خارج الموضوع ولكن لعلنا نستفيد منه لأنه طرح بالموضوع وفي سياق المسألة.
15-06-14, 11:58 PM
(14-06-14, 01:51 PM)vbnet كتب : [ -> ].....
تم تصحيح الكود السابق
.....
شكراً أخي ، لكن المشكلة الآن أن التوضيح لا يختفي عن آخر زر ظهر عليه ! يبقى ظاهراً لآخر زر تم التأشير عليه.
16-06-14, 01:50 AM
.....
تم تصحيح الكود السابق
.....
تم تصحيح الكود السابق
.....
16-06-14, 03:27 PM
السلام عليكم
بورك فيك ورزقك الله العلم النافع الذي تنتفع منه وبه وتنتفع به أمة محمد عليه الصلاة والسلام.
جزاك الله خيراً أخي vbnet.
بورك فيك ورزقك الله العلم النافع الذي تنتفع منه وبه وتنتفع به أمة محمد عليه الصلاة والسلام.
جزاك الله خيراً أخي vbnet.
16-06-14, 05:31 PM