• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Sniper.ps

اعضاء جدد
  • عدد المشاركات

    19
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة Sniper.ps

  1. السلام عليكم ورحمة الله وبركاته شرح تفصيلي لأداة ال ListView وكيفية استخدامها في هذا الدرس إن شاء الله سأقوم بشرح أداة ال ListView بشيء من التفصيل في البداية يمكننا إضافة الأداة من ال ToolBox كما في الصورة أساليب عرض البيانات في أداة ال ListView أداة ال ListView توفر خمسة خيارات لعرض البيانات في هذه الأداة وذلك عن طريق الخاصية View وهي كما يلي :- أولاً : عرض التفاصيل أو عرض البيانات كما في أداة ال DataGridView لاحظ الصورة التالية : نقوم بضبط الخاصية View = View.Deatils كما يلي ListView1.View = View.Details End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load كما نلاحظ في الصورة هناك عمودين يحتويان على عناصر , لإضافة عمود نستخدم الخاصية Columns كما يلي وللخاصية Columns بعض الوظائف من أهمها ما يلي : 1) Add : وهذه الوظيفة تمكننا من إضافة عمود ولها الباراميترات من أهمها : • Text : وهو لتعيين النص الذي يظهر على عنوان العمود • Width : وهو لتحديد عرض العمود • TextAlign : وهو لضبط إزاحة النص في عنوان العمود والكود التالي لإضافة عمودين في أداة ال ListView ListView1.View = View.Details ListView1.Columns.Add("Name", 100) ListView1.Columns.Add("Number", 100, HorizontalAlignment.Center) End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ملاحظة : العمود الأول لا يمكن تغيير خاصية ال TextAlign له 2) Clear : وهذه الوظيفة تستخدم لمسح جميع الأعمدة والبيانات أيضاً 3) RemoveAt : حذف عمود بناء على رقم ذلك العمود مع العلم أن رقم أول عمود = 0 إنشاء مثال تطبيقي الآن نأتي لكيفية إضافة عناصر لأداة ال ListView .. سنقوم بإنشاء مثال كما في الصورة التالية: قم بفتح مشروع جديد ثم أضف أداة الـ ListView إلى الـ From ثم قم بضبط الخاصية View = View.Deatils كما ذكرنا سابقاً ثم نقوم بإضافة ثلاثة أعمدة باستخدام باستخدام الخاصية Columns ليصبح الكود قبل إضافة البيانات كما يلي ListView1.View = View.Details ListView1.Columns.Add("Name", 100) ListView1.Columns.Add("Number", 100, HorizontalAlignment.Center) ListView1.Columns.Add("Address", 100, HorizontalAlignment.Center) End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load الآن لكي نضيف بيانات إلى الـ ListView سنستخدم الخاصية Items .. سنتعرف على أهم الوظائف لهذه الخاصية وهي :- 1) Add : وهذه الوظيفة تمكننا من إضافة بيانات داخل أداة الـ ListView ولها الباراميترات من أهمها ما يلي • Text : وهو لإضافة النص الذي نريد عرضه داخل أداة ال ListView • ImageIndex : وهي رقم الصورة التي ستظهر في الـ ListView في حال أردنا إضافة صورة .. طبعاً يجب ضبط خاصية SmallImageList كما يلي ListView1.SmallImageList = ImageList1 وهنا أخذنا الصور من أداة الـ ImageList1 . 2) Clear : وهي لمسح جميع البيانات داخل أداة الـ ListView .. وبدون حذف الأعمدة. 3) Insert : وهي لإضافة صف في مكان معين في أداة الـ ListView .. والباراميترات لها تقريباً نفس باراميترات الوظيفة Add ما تختلف عنها هو وجود الباراميتر Index وهو رقم الصف الذي نريد إضافة صف جديد قبله. 4) RemoveAt : وهي لحذف صف معين من خلال تمرير رقم الصف لها. 5) Item : هذه الخاصية يمكن من خلالها التحكم في البيانات داخل أداة الـ ListView ولها العديد من الوظائف أهمها ما يلي :- •BackColor : لتغيير لون خلفية العنصر بلون معين .. مثال ListView1.Items.Item(0).BackColor = Color.Green وهنا قمنا بتغيير لون خلفية العنصر الأول إلى اللون الأخضر . ملاحظة : في حالة كانت خاصية FullRowSelect = True لأداة الـ ListView ففي هذه الحالة سيتم تلوين جميع الصف أما في حالة كانت = False فسيتم تغيير أول حقل فقط من الصف . • BeginEdit : تستخدم لبدء عملية تحرير الحقل الأول في السطر الذي نريده ملاحظة : في هذه الحالة يجب ضبط خاصية LabelEdit = True لأداة الـListView ListView1.Items.Item(0).BeginEdit() • Checked : تستخدم لوضع علامة صح أمام العنصر ولها قيمتان إما True أو False ملاحظة : في هذه الحالة يجب ضبط خاصية CheckBoxes = True لأداة الـListView ListView1.Items.Item(0).Checked = True • Font : لضبط نوع الخط للصف الذي نريده ListView1.Items.Item(0).Font = New Font("Arial", 16, FontStyle.Bold) • ForeColor : لتغيير لون الخط للعناصر ListView1.Items.Item(0).ForeColor = Color.Blue • Remove : حذف الصف ListView1.Items.Item(0).Remove() • Selected : وضع شريط التحديد على الصف ListView1.Focus()ListView1.Items.Item(0).Selected = True • SubItems : للتحكم في الحقول الموجودة في الأعمدة وأهم خاصية لها هي Text وهي لجلب نص من حقل معين أو إضافة نص في حقل معين . MessageBox.Show(ListView1.Items.Item(0).SubItems(1).Text) هنا سيتم إظهار نص الحقل الموجود في الصف الأول وفي العمود الثاني .. لأن ترقيم الأعمدة والصفوف يبدأ من الرقم 0 • Text : لإضافة أو جلب نص من الحقل الموجود في العمود الأول للصف MessageBox.Show(ListView1.Items.Item(0).Text) * نعود الآن لبرمجة مثالنا .. نبدأ بوضع كود زر إضافة حيث يمكننا برمجته بطريقتين كما يلي : ListView1.Items.Add(TextBox1.Text) ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TextBox2.Text) ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TextBox3.Text) End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click في السطر الأول من الكود قمنا بإضافة صف جديد ويتم وضع النص الموجود في الـ TextBox1 في الحقل الأول من العمود .. وفي السطر الثاني يتم وضع النص الموجود في الـ TextBox2 في الحقل الثاني من العمود .. وفي السطر الثالث يتم وضع النص الموجود في الـ TextBox3 في الحقل الثالث من العمود .. وقد قمنا باستخدام الخاصية ListView1.Items.Count لإضافة النص الموجود في الـ TextBox2 و TextBox3 في آخر صف والذي رقمه = عدد الصفوف – 1 . الطريقة الثانية نقوم بتعريف متغير من نوع ListViewItem ثم نقوم بإسناده للوظيفة Add وبعد ذلك نضيف العناصر في الصف كما يلي Dim Lst As ListViewItem Lst = ListView1.Items.Add(TextBox1.Text) Lst.SubItems.Add(TextBox2.Text) Lst.SubItems.Add(TextBox3.Text) End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click والآن برمجة الزر حذف المحدد نستخدم الخاصية FocusedItem لجلب رقم الصف المحدد .. طبعاً في البداية يجب أن نتحقق من وجود بيانات داخل الأداة كما يلي If ListView1.Items.Count > 0 Then ListView1.Items.RemoveAt(ListView1.FocusedItem.Index) End If End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click زر حذف الكل وهذا سهل جداً وذلك عن طريق الوظيفة Clear كما يلي ListView1.Items.Clear() End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click الآن بقي آخر شيء في المثال وهو عن الضغط على صف معين يتم إظهار بيانات ذلك الصف في الـ TextBoxes .. سنستخدم الحدث Click لأداة الـ ListView كما يلي :- TextBox1.Text = ListView1.SelectedItems(0).Text TextBox2.Text = ListView1.SelectedItems(0).SubItems(1).Text TextBox3.Text = ListView1.SelectedItems(0).SubItems(2).Text End SubPrivate Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click الآن نكون قد انتهينا من برمجة المثال يمكنكم تحميله من الرابط التالي حمل المثال التوضيحي من هنا خصائص أداة الـ ListView سنتعرف الآن على أهم خصائص ووظائف أداة الـ ListView وهي كما يلي : • AutoResizeColumn : تستخدم لتحجيم الأعمدة في الأداة .. ولها باراميترين وهما كما يلي • Index : رقم العمود • HeaderAutoResize : تحديد نمط التحديد ولها ثلاث خيارات وهي كما يلي • ColumnHeaderAutoResizeStyle.ColumnContent : تحجيم العمود بناء على طول نص في حقول ذلك العمود . • ColumnHeaderAutoResizeStyle.HeaderSize : تحجيم العمود بناء على طول النص في عنوان العمود . • ColumnHeaderAutoResizeStyle.None : عدم فعل أي شيء •AutoResizeColumns : تستخدم لتحجيم جميع الأعمدة في الأداة دفعة واحدة ولها بارميتر واحد وهو HeaderAutoResize • BackColor : لتغيير لون خلفية أداة الـ ListView • BackgroundImage : لوضع صورة في أداة الـ ListView • BorderStyle : لتغيير شكل الأداة • BringToFront : جعل أداة الـ ListView في مقدمة الأدوات • CheckBoxes : إظهار أو إخفاء مربعات التحديد في الأداة • Clear : مسح جميع محتويات أداة الـListView بما في ذلك الأعمدة • Dispose : إزالة الأداة عن النموذج • Enabled : تفعيل وتعطيل أداة الـ ListView • Focus : التركيز على أداة الـ ListView • FocusedItem : ولها عدة وظائف مشابهه للخاصية Item التابعة للخاصية Items ويتم تطبيق هذه الوظائف على الصف المحدد في الأداة .. فمثلاً يمكن حذف الصف المحدد كما يلي ListView1.FocusedItem.Remove() • Font : تغيير الخط في كامل الأداة • ForeColor : تغيير لون الخط في أداة الـ ListView • FullRowSelect : جعل شريط التحديد يمتد على جميع الحقول في الصف • GridLines : لإظهار الخطوط في أداة الـ ListView • HeaderStyle : وهي لأسلوب عرض عنوان الأعمدة وهي كما يلي • ColumnHeaderStyle.Clickable : القدرة على ضغط عنوان الأعمدة . • ColumnHeaderStyle.Nonclickable : عدم القدرة على ضغط عنوان الأعمدة. • ColumnHeaderStyle.None : عدم فعل أي شيء • Hide : اخفاء الأداة عن النموذج • HoverSelection : القدرة على تحريك شريط التحديد من خلال تحريك الماوس • MultiSelect : خاصية تتيح القدرة على تحديد أكثر من صف في الـ ListView • RightToLeftLayout : تحويل اتجاه أداة الـ ListView من اليمين إلى اليسار وهذا مناسب مع البرامج العربية .. ولكي تعمل هذه الخاصية يجب ضبط خاصية RightToLeft = True كما يلي ListView1.RightToLeft = RightToLeft.Yes ListView1.RightToLeftLayout = True • Scrollable : يمكن من خلال هذه الخاصية إظهار أو إخفاء أشرطة التمرير في أداة الـ ListView • SendToBack : وضع الأداة خلف الأدوات • Show : إظهار أداة الـ ListView .. وهي عكس الوظيفة Hide • Sort : تستخدم لترتيب الـ ListView بناء على قيمة الخاصية Sorting • Sorting : تستخدم لتحديد نوع الترتيب إما تصاعدي (Ascending) أو تنازلي (Descending) • ListViewItemSorter : تحديد رقم العمود الذي سيتم الترتيب بواسطته .. لكن هنا سيلزمنا هذه الفئة Implements IComparer Private col As Integer Public Sub New() col = 0 End Sub Public Sub New(ByVal column As Integer) col = column End Sub Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text) End Function End ClassClass ListViewItemComparer ليصبح كود ترتيب الـ ListView كما يلي ListView1.ListViewItemSorter = New ListViewItemComparer() ListView1.Sort()ListView1.Sorting = SortOrder.Ascending حيث القيمة الافتراضية لـ ListViewItemComparer = 0 وهي رقم العمود الأول ويمكن جعل الترتيب بواسطة العمود الثاني بتعديل السطر الثاني ليصبح كما يلي ListView1.ListViewItemSorter = New ListViewItemComparer(1) • TopItem : للتحكم في العنصر الذي يكون في أعلى أداة الـ ListView وليس شرطاً أن يكون أول عنصر في الأداة .. ولها نفس خصائص الخاصية Items .. فمثلاً لحذف العنصر الموجود في أعلى أداة الـListView نستخدم الكود التالي : ListView1.TopItem.Remove() • Visible : إخفاء وإظهار أداة الـ ListView أحداث الأداة ListView سنتعرف الآن على أهم أحداث أداة الـ ListView وهي كما يلي : • AfterLabelEdit : ينشط هذا الحدث عند الانتهاء من تعديل خلية في أداة الـ ListView • BeforeLabelEdit : ينشط هذا الحدث قبل البدء في تعديل خلية في أداة الـ ListView • Click : ينشط هذا الحدث عند النقر على أداة الـ ListView • ColumnClick : ينشط هذا الحدث عند النقر على الـ Header (العنوان الرأسي) لأداة الـ ListView ويمكن استخدامه كما يلي If e.Column = 1 Then MsgBox("Sniper") End If End SubPrivate Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick حيث الرقم 1 هو رقم العمود الذي نريد عند الضغط عليه يتم تنفيذ هذا الحدث • Disposed : ينشط هذا الحدث عند إزالة باستخدام الأمر Dipose أداة الـ ListView • DoubleClick : ينشط هذا الحدث عند النقر المزدوج على أداة الـ ListView • ItemSelectionChanged : ينشط هذا الحدث عند تغيير موقع شريط التحديد أداة الـ ListView ربط أداة الـ ListView بقاعدة بيانات Access وفي الرابط التالي مثال لربط أداة الـ ListView بقاعدة بيانات Access حمل المثال من هنا ثانياً : عرض البيانات عندما تكون خاصية View = LargeIcon أو Tile هنا سنقوم بإنشاء مثال كما في الصورة (LargeIcon) أو كما في الصورة (Tile) في البداية سنقوم بضبط خاصية View كما يلي ListView1.View = View.LargeIcon هنا في هذين الأسلوبين من عرض البيانات نستخدم خاصية LargeImageList باسم أداة الـ ImageList التي نريد أخذ الصور منها كما يلي ListView1.LargeImageList = ImageList1 إضافة العناصر داخل الأداة كما يلي ListView1.Items.Add (Text , ImageIndex) حيث Text : هو النص الذي سيظهر أسفل صورة العنصر ImageIndex : رقم الفهرس للصورة التي سنضعها للعنصر والمثال التوضيحي في الرابط التالي حمل المثال التوضيحي من هنا ثالثاً : عرض البيانات عندما تكون خاصية View = List أو SmallIcon هنا سنقوم بإنشاء مثال كما في الصورة (List) أو كما في الصورة (SmallIcon) في البداية سنقوم بضبط خاصية View كما يلي ListView1.View = View.List هنا في هذين الأسلوبين من عرض البيانات نستخدم خاصية SmallImageList باسم أداة الـ ImageList التي نريد أخذ الصور منها كما يلي ListView1. SmallImageList = ImageList1 إضافة العناصر داخل الأداة كما يلي ListView1.Items.Add (Text , ImageIndex) حيث Text : هو النص الذي سيظهر أسفل صورة العنصر ImageIndex : رقم الفهرس للصورة التي سنضعها للعنصر والمثال التوضيحي في الرابط التالي حمل المثال التوضيحي من هنا ارجو أن أكون قد وفقت في الشرح وفقنا الله وإياكم لما يحبه ويرضاه في المرفقات مثال منقول لكيفية إضافة أدوات داخل الـ ListView بالتوفيق للجميع ListViewExtra-01.rar
  2. بسم الله الرحمن الرحيم تعلم كيف تصنع أداة ال ActiveX بنفسك من الألف إلى الياء قبل البدأ في الدرس أو أن ألفت إنتباهكم بأن هذا المقال من إعدادي وتأليفي بحمد الله وفضله عليّ بعد أن بدأت في برمجة الأدوات أقدم لكم هذا الدرس أتمنى أن ينال إعجابكم في هذا الدرس سأقوم بشرح كيفية تصميم Text خاص بك وإضافة العديد من المزايا له. في البداية ما هي ال ActiveX بكل بساطة هي عبارة عن أداة مثل الأدوات القياسية في الفيجوال بيسك كمربع النص و زر الأمر ..إلخ, يقوم المبرمج ببرمجتها لتلبّي احتياجاته البرمجية. لنبدأ الآن في الدرس افتح مشروع جديد StanderdExE كما في الصورة التالية بعد فتح مشروعك قم بإضافة مشروع آخر من نوع ActiveX Control كما في الصورة التالي الهدف من إنشاء مشروعين هو 1)القدرة على تجربة الأداة أثناء التصميم 2)لتتمكن من تحويل الأداة الى ملف OCX بعد إضافتك للمشروعين إضغط DblClick على الأداة الموجودة في الصورة التالية ستظهر لك الأداة كما في الصورة التالية يمكنك ضبط اسم الأداة من نافذة الخصائص فلنقم بتسميتها فرضاً باسم MyText كما في الصورة التالية هناك العديد من الخصائص لأداة الUserControl ما يهمنا هي الخصائص التالية: InvisibleAtRuntime : لرؤية أو عدم رؤية الأداة أثناء زمن التنفيذ PropertyPages : وهي لاختيار صفحات ال PropertyPages التي سأتحدث عنها لاحقاً ToolBoxBitmap : وهي للإيقونة التي تظهر في صندوق الأدوات نعود الآن للأداة ضع أداة Text على أداة الUserControl كما في الصورة التالية قم بتسميتها بإسم TxT اضبط خاصية وقم بإعادة تسمية أدوات ال ComboBox كما يلي Combo1 : xSelectCase Combo2 : xInputType Combo3: xAlignment Combo4 : xScrollBars ورتب الأدوات على ال PropertyPage لتصبح كما في الصورة التالية أهم خصائص وأحداث PropertyPage خاصية Changed (قيمة منطقية) ووظيفتها تحديد إذا ما أراد المستخدم تغيير الخاصية من خلال ال PropertyPage أم لا حدث ApplyChanges ويتم تشغيل هذا الحدث عندما ينقر المستخدم على زر موافق أو بتبديل علامات التبويب في PropertyPage التي تتألف من عدة صفحات حيث أن هذا الحدث يقوم بإعطاء خصائص ال Text قيمها من القيم الموجودة في الPropertyPage حدث SelectionChanged ويتم تشغيل هذا الحدث عند النقر على خانة Custom حيث يتم إعطاء الأداة المربوطة بخاصية معينة قيمتها من تلك الخاصية حدث Initialize وهو يعمل عند تشغيل الPropertyPage فمثلا سنستخدمه لملئ صناديق الComboBox بالخيارات كما في الكود التالي xSelectCase.AddItem "MixedCase" xSelectCase.AddItem "LowerCase" xSelectCase.AddItem "UpperCase" xInputType.AddItem "AlfaNum" xInputType.AddItem "Alfa" xInputType.AddItem "Num" xAlignment.AddItem "Alignleft" xAlignment.AddItem "AlignRight" xAlignment.AddItem "AlignCenter" xScrollBars.AddItem "None" xScrollBars.AddItem "Horiziontal" xScrollBars.AddItem "Vertical" xScrollBars.AddItem "Both" End SubPrivate Sub PropertyPage_Initialize() لنبدأ الآن ببرمجة ال PropertyPage فمثلا لتبديل خاصية SelectCase نضغط DblClick على الCombo الخاص بهذه الخاصية ولأننا نريد تغيير الخاصية من خلال ال PropertyPage فإننا نضع قيمة الخاصية Changed = True في حدث Click للأداة فيصبح الكود كالتالي Changed = True End SubPrivate Sub xSelectCase_Click() ولإعطاء قيمة ال Combo للخاصية المرتبط بها نضع الكود التالي في حدث ApplyChanges كما يلي SelectedControls(0).SelectCase = xSelectCase.ListIndex End SubPrivate Sub PropertyPage_ApplyChanges() ولإعطاء ال ComboBox قيمته من الخاصية الخاصة به عند فتح ال PropertyPage نضع الكود التالي في حدث SelectionChanged كما يلي xSelectCase.ListIndex = SelectedControls(0).SelectCase End SubPrivate Sub PropertyPage_SelectionChanged() وباقي الأدوات بنفس الطريقة كما يلي Changed = True End Sub Private Sub Check2_Click() Changed = True End Sub Private Sub Check3_Click() Changed = True End Sub Private Sub Check4_Click() Changed = True End Sub Private Sub xAlignment_Click() Changed = True End Sub Private Sub xInputType_Click() Changed = True End Sub Private Sub xScrollBars_Click() Changed = True End Sub Private Sub xSelectCase_Click() Changed = True End SubPrivate Sub Check1_Click() لكن يبقى كيفية تغيير اللون الطريقة كالتالي بإظهار شاشة إنتقاء اللون من خلال أداة الCommonDialog فتأخذ أداة ال PictureBox اللون من أداة الCommonDialog ونقوم بإعطاء الخاصية التي نريد تغييرها كما يلي نضع في زر الأمر الكود التالي CD.ShowColor Pic1.BackColor = CD.Color ActiveBackGround = CD.Color Changed = True End SubPrivate Sub Command1_Click() وفي حدث ApplyChanges كالتالي SelectedControls(0).ActiveBackGround = Pic1.BackColor End SubPrivate Sub PropertyPage_ApplyChanges() وفي حدث SelectionChanged كالتالي Pic1.BackColor = SelectedControls(0).ActiveBackGround End SubPrivate Sub PropertyPage_SelectionChanged() وبالنهاية يصبح حدث ApplyChanges كالتالي SelectedControls(0).ActiveBackGround = Pic1.BackColor SelectedControls(0).ActiveForeGround = Pic2.BackColor SelectedControls(0).ActiveFrame = Pic3.BackColor SelectedControls(0).InactiveBackGround = Pic4.BackColor SelectedControls(0).InactiveForeGround = Pic5.BackColor SelectedControls(0).InactiveFrame = Pic6.BackColor SelectedControls(0).UseSpace = IIf(Check1.Value = 1, True, False) SelectedControls(0).Enabled = IIf(Check3.Value = 1, True, False) SelectedControls(0).Locked = IIf(Check4.Value = 1, True, False) SelectedControls(0).SelectCase = xSelectCase.ListIndex SelectedControls(0).InputType = xInputType.ListIndex SelectedControls(0).Alignment = xAlignment.ListIndex SelectedControls(0).ScrollBars = xScrollBars.ListIndex End SubPrivate Sub PropertyPage_ApplyChanges() وحدث SelectionChanged كالتالي Pic1.BackColor = SelectedControls(0).ActiveBackGround Pic2.BackColor = SelectedControls(0).ActiveForeGround Pic3.BackColor = SelectedControls(0).ActiveFrame Pic4.BackColor = SelectedControls(0).InactiveBackGround Pic5.BackColor = SelectedControls(0).InactiveForeGround Pic6.BackColor = SelectedControls(0).InactiveFrame Check1.Value = IIf(SelectedControls(0).UseSpace = True, 1, 0) Check3.Value = IIf(SelectedControls(0).Enabled = True, 1, 0) Check4.Value = IIf(SelectedControls(0).Locked = True, 1, 0) xSelectCase.ListIndex = SelectedControls(0).SelectCase xInputType.ListIndex = SelectedControls(0).InputType xAlignment.ListIndex = SelectedControls(0).Alignment xScrollBars.ListIndex = SelectedControls(0).ScrollBars End SubPrivate Sub PropertyPage_SelectionChanged() الآن بقيت خطوة بسيطة لكيفية ربط ال PropertyPage بال UserControl إذهب ال خصائص ال UserControl واختر خاصية PropertyPages اضغط عليها ستظهر لك نافذة كما في الصورة التالية كما في الصورة ثم القائمة الموجودة في الصفحة هي مجموعة من PropertyPages القياسية التي تأتي مع برنامج الفيجوال بيسك بالإضافة الى الصفحة التي صممناها بإسم Setting ما يلزمنا هي الصفحة التي صممناها وصفحة تغيير الخط واضغط OK ملاحظة :يمكنك تغيير عرض الصفحات من حيث الصفحة التي ستظهر في البداية من خلال الأسهم اللتي تظهر في الصورة السابقة والخطوة الأخيرة هي تحويل أداة ال UserControl إلى أداة OCX يمكن استخدامها في أي برنامج والمسألة بسيطة حدد المشروع الظاهر في الصورة واذهب الى قائمة File واختر الخيار الظاهر في الصورة ثم حمل المثال النهائي من هنا أرجو أن أكون قد وفقت في الشرح تحياتي لكم جميعاً
  3. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته في هذا الدرس إن شاء الله سأقوم بشرح أداة أعجبتني وأردت أن تستفيدوا منها في برامجكم لأنها حقاً أداة رائعة وهي أداة Office Ribbon 2007 . وللمعلومة فإن الأداة مفتوحة المصدر ومنقولة من احد المواقع أما الشرح فمن إعدادي والحمد لله للتعرف على ال Ribbon انظر إلى الصورة التالية أهم خصائص هذه الأداة 1)خاصية Theme ومن خلال هذه الخاصية يمكنك تغيير لون أداة ال Ribbon ولهذه الخاصية ثلاثة قيم وهي 2) خاصية ImageList وهذه الخاصية لاستخدام الإيقونات في ال Ribbon طبعا باستخدام أداة ImageList 3) خاصية AddTab وهي لإضافة Tab وصيغتها العامة كما يلي ACPRibbon1.AddTab (TabID, Caption) حيث TabID هو رقم المعرّف للTab Caption : وهي النص الذي تريد أن يظهر على ال Tab 4) خاصية AddCat وهي لإضافة مجموعة (Group) وصيغتها العام كما يلي ACPRibbon1.AddCat (ID, TabID, Caption, DialogButton) 5)AddButton ويستخدم لإضافة زر أمر (Button) داخل ال Group وصيغتها العامة ACPRibbon1.AddButton (ID, GroupID, Caption, Picture, Arrow, ToolTip) حيث ID: رقم المعرف للButton GroupID : رقم ال Group التي سيتم إضافة الButton فيها Caption : النص الذي سيظهر على ال Button Picture : رقم الصورة التي نريد ان نظهرها على ال Button مع العلم أن أرقام الصور مأخوذة من أداة ال ImageList Arrow : وهي قيمة منطقية لإظهار أو إخفاء سهم صغير على ال Button ToolTip : وهي النص الذي سيظهر في النافذة الصغير الصفراء التي تظهر عند وضع الماوس فوق ال Button 6) Refresh : وهذا الحدث يستخدم في آخر سطر في الكود ليتم إظهار ال Tabs وال Groups وال Buttons على أداة ال Ribbon ملاحظة : يتم إضافة ال Tabs وال Groups وال Buttons بالترتيب يعني في البداية نضيف ال Tabs ثم نضيف ال Groups ثم نضيف ال Button ملاحظة : تجنب تكرار قيمة ال ID للمكونات لكي تتمكن من التعامل مع الأداة بسكل سليم. أحداث الأداة 1) حدث ACPRibbon1_TabClick حيث من خلال هذا الحدث يتم تنفيذ كود بالاعتماد على قيمة ال ID أو ال Caption لكن من الأفضل استخدام قيمة الID للTabs 2)حدث ACPRibbon1_CatClick تقريباً نفس حدث ACPRibbon1_TabClick لكن في هذه الحالة لا يتم تنفيذ الكود إلا من خلال النقر على DialogButton الذي يتم إضافته إلى ال Groups 3)حدث ACPRibbon1_ButtonClick وفي هذا الحدث يتم تنفيذ الكود من خلال قيمة ال ID أو قيم ال Caption ولكن كما سبق وذكرت يفضل استخدام ال ID . طبعاً يتم ذلك عن طريق جمل IF أو جملة Select Case إنشاء مثال تطبيقي نضع أداة ال Ribbon على الفورم ونضع أداة ImageList وأداة Image نعرف المتغير التالي في ال General Dim Theme As Integer في حدث ال Form_Load نضع الأكواد كما في الشرح التالي ACPRibbon1.Theme = ThemeTheme = 0 حيث أعطينا المتغير Theme قيمة 0 ثم أعطينا هذه القيمة لخاصية Theme لأداة ال Ribbon وقيمة صفر لخاصية Theme تعبر عن اللون الأسود لل Ribbon ثم الكود التالي Image1.Left = 0 Image1.Top = ACPRibbon1.Height لضبط إحداثيات أداة ال Image ثم Image1.Picture = ACPRibbon1.LoadBackground لضبط خاصية Picture لأداة ال Image وهي لإظهار لمعان في الخلفية ثم Form1.BackColor = ACPRibbon1.BackColor لضبط لون خلفية الفورم ثم الكود ACPRibbon1.ImageList = ImageList1 ثم ACPRibbon1.AddTab "2", "Tab 2" ACPRibbon1.AddTab "3", "Tab 3"ACPRibbon1.AddTab "1", "Tab 1" لاضافة 3 Tabs لاحظ أن قيمة ال ID مختلفة لكل منها ثم ACPRibbon1.AddCat "2", "1", "Group 2", True ACPRibbon1.AddCat "3", "1", "Group 3", True ACPRibbon1.AddCat "4", "2", "Group 1", True ACPRibbon1.AddCat "5", "2", "Group 2", False ACPRibbon1.AddCat "6", "3", "Group 1", FalseACPRibbon1.AddCat "1", "1", "Group 1", False لإضافة ال Groups فمثلاً في السطر الأول يتم إضافة Group برقم ID = 1 تابع للTab الذي قيمة ال ID له 1 ولا ستم إضافة DialogButton نظراً لأن القيمة = False تذكر أن الصيغة العامة لإضافة مجموعة هي كالتالي ACPRibbon1.AddCat (ID, TabID, Caption, DialogButton) ثم الكود التالي لإضافة Button ACPRibbon1.AddButton "1", "1", "تغيير" & vbNewLine & "الستايل", 4 ACPRibbon1.AddButton "2", "1", "جدول", 1, False, "إضافة جدول جديد" ACPRibbon1.AddButton "3", "1", "إضافة صورة", 2 ACPRibbon1.AddButton "4", "1", "إضاقة" & vbNewLine & "صورة", 2 ACPRibbon1.AddButton "5", "2", "Graph", 3 ACPRibbon1.AddButton "6", "2", "Graph", 3, True ACPRibbon1.AddButton "7", "3", "إلبوم", 4 ACPRibbon1.AddButton "8", "4", "رسم", 5 حيث في السطر الأول مثلاً رقم ال ID = 1 لل Button يتم إضافته داخل ال Group الذي يحمل ال ID = 1 والCaption = تغيير الستايل حيث كل كلمة في سطر لهذا استخدمت vbNewLine وستم إضافة الصورة أو الإيقونة رقم 4 الموجودة داخل أداة ال ImageList و ACPRibbon1.Refresh لتحديث الاداة ورسم المكونات عليها ليصبح الكود كاملاً داخل حدث ال Form_Load كما يلي Private Sub Form_Load() Theme = 0 ACPRibbon1.Theme = Theme Image1.Left = 0 Image1.Top = ACPRibbon1.Height Image1.Picture = ACPRibbon1.LoadBackground Form1.BackColor = ACPRibbon1.BackColor ACPRibbon1.ImageList = ImageList1 ACPRibbon1.AddTab "1", "Tab 1" ACPRibbon1.AddTab "2", "Tab 2" ACPRibbon1.AddTab "3", "Tab 3" ACPRibbon1.AddCat "1", "1", "Group 1", False ACPRibbon1.AddCat "2", "1", "Group 2", True ACPRibbon1.AddCat "3", "1", "Group 3", True ACPRibbon1.AddCat "4", "2", "Group 1", True ACPRibbon1.AddCat "5", "2", "Group 2", False ACPRibbon1.AddCat "6", "3", "Group 1", False ACPRibbon1.AddButton "1", "1", "تغيير" & vbNewLine & "الستايل", 4 ACPRibbon1.AddButton "2", "1", "جدول", 1, False, "إضافة جدول جديد" ACPRibbon1.AddButton "3", "1", "إضافة صورة", 2 ACPRibbon1.AddButton "4", "1", "إضاقة" & vbNewLine & "صورة", 2 ACPRibbon1.AddButton "5", "2", "Graph", 3 ACPRibbon1.AddButton "6", "2", "Graph", 3, True ACPRibbon1.AddButton "7", "3", "إلبوم", 4 ACPRibbon1.AddButton "8", "4", "رسم", 5 ACPRibbon1.Refresh End SubDim Theme As Integer استخدام الأحداث يتم كما يلي يمكنك استخدام جملة Select Case كما يلي سنأخذ حدث ButtonClick لأنه الأكثر استعمالاً Private Sub ACPRibbon1_ButtonClick(ByVal ID As String, ByVal Caption As String) Select Case ID Case 1 Theme = Theme + 1 If Theme > 2 Then Theme = 0 ACPRibbon1.Theme = Theme Image1.Picture = ACPRibbon1.LoadBackground Form1.BackColor = ACPRibbon1.BackColor ACPRibbon1.Refresh End Select End Sub فمثلاً في هذا الكود باستخدام جملة Select Case في حالة كانت قيمة ال ID = 1 فإننا سنقوم بتغيير ال Theme وباقي ال Button بنفس الطريقة عن طريق قيمة ال ID يمكننا تنفيذ كود معيًن وبالنسبة لباقى الأحداث بنفس الطريقة استخدم جملة Select Case في برمجتها ملاحظة هامة : عندما تريد أن تستخدم هذه الأداة في برامجك يبج إضافة الملفين الظاهرين في الصورة التالية حتى تعمل أداة ال Ribbon حيث أن ملف Theme هو ملف Resuorce يحتوى على الصور المكوّنة لأداة ال Ribbon وملف Office Ribbon 2007 وهي أداة ال Ribbon والمثال في المرفقات أتمنّى أنّ أكون قد أفدتكم تحياتي للجميع Ribbon Example.rar
  4. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته شرح تفصيلي لأداة ال ListView وكيفية استخدامها بعد مشاهدتي للعديد من الأسئلة والاستفسارات حول أداة ال ListView قررت كتابة مقال بشكل تفصيلي عن أداة ال ListView وسيتم خلال هذا المثال طرح أمثلة لتقريب الأفكار إلى ذهن القارئ , وأنوه في بداية الشرح أنني سأستخدم الكود فقط في التعامل مع أداة ال ListView ولن استخدم الخصائص مطلقاً .. لنبدأ على بركة الله :- في البدء سنتعلم كيف تتم إضافة الأداة , من قائمة Project اختر Components ثم اختر Microsoft Windows Common Controls 6.0 كما في الصور التالية : صورة الأداة بعد إضافتها على ال Form استخدامات أداة ال ListView أولاً : استخدام أداة ال ListView كأداة لعرض البيانات من استخدامات أداة ال ListView هو استخدامها كأداة لعرض البيانات مثل أداة DataGrid وأداة MSFlexGrid المعروفة. لاستخدام أداة ال ListView كأداة لعرض البيانات يجب ضبط خاصية View على الخيار lvwReport ,طبعاً خاصية View تستخدم لتحديد أسلوب العرض في أداة ال ListView وهناك خيارات أخرى لأسلوب العرض وهذه الخيارات هي كما يلي ■ lvwIcon : وهي لعرض أيقونات كبيرة داخل أداة ال ListView كما في الصورة التالية ■ lvwList : وهي البيانات كقائمة داخل أداة ال ListView كما في الصورة التالية ■ lvwReport : وهي لعرض البيانات كتقرير داخل أداة ال ListView وهي تشبه كثيراً الأدوات المعروفة لعرض البيانات من قاعدة البيانات مثل أداة DataGrid وأداة MSFlexGrid ... الخ. وهي أكثر الخيارات المستخدمة من قبل المبرمجين كما في الصورة التالية ■ lvwSmallIcon : وهي لعرض أيقونات صغيرة داخل أداة ال ListView كما في الصورة التالية تصميم مثال ● سأبدأ الآن بمثال بسيط لا يعتمد على قاعدة البيانات تابع معي 1)أضف أداة ListView إلى الForm 2)اذهب إلى حدث Load لل Form واكتب الكود التالي , وهذا الكود كما شرحنا سابقاً لتحديد أسلوب العرض في أداة ال ListView . Private Sub Form_Load() ListView1.View = lvwReport End Sub 3)لنفترض أن نريد إضافة ثلاثة أعمدة داخل أداة ال ListView في هذه الحالة يجب إضافة عنوان رأسي لكل عمود وهذا يتم باستخدام خاصية ColumnHeaders لأداة ال ListView ◄ قبل إضافة العناوين الرأسية لأداة ال ListView سأشرح خاصية ColumnHeaders لهذه الخاصية خمس وظائف وهي كالتالي ♦ Add : وهي الوظيفة تستخدم لإضافة عنوان رأسي داخل أداة ال ListView ولهذه الخاصية ست باراميترات وهي كما يلي ListView1.ColumnHeaders.Add Index, Key, Text, Width, Alignment, Icon حيث ▪ Index : هي الفهرس لهذا العنوان الرأسي ▪ Key : المفتاح لهذا العنوان الرأسي ▪ Text: النص الذي سيظهر عليه وهو الباراميتير الوحيد الذي سأستخدمه في إضافة العناوين الرأسية ▪ Width: لتحديد عرض العنوان الرأسي ▪ Alignment : لتحديد اتجاه محاذاة النص على العنوان الرأسي ولهذه الخاصية ثلاثة قيم كما تلاحظ في البارميترات فالوظيفة Add للخاصية ListSubItems هي تقريبا نفسها البارميترات للوظيفة Add للخاصية ListItems ف ReportIcon هي نفسها SmallIcon والباراميتر ToolTipText فهو للنافذة الصغير المنبثقة عند وضع مؤشر الفأرة على ذلك العنصر. 7)نأتي الآن لنضيف بيانات داخل أداة ال ListView كما في الكود التالي ListView1.View = lvwReport ListView1.ColumnHeaders.Add , , "Name" ListView1.ColumnHeaders.Add , , "Number" ListView1.ColumnHeaders.Add , , "Address" Dim Lst As ListItem Dim i As Integer For i = 0 To 4 Set Lst = ListView1.ListItems.Add(, , "Sniper.ps") Lst.ListSubItems.Add , , i Lst.ListSubItems.Add , , "Palestine" Next i End Sub Private Sub Form_Load() ليصبح الشكل كما في الشكل التالي تلاحظ في الصورة عند تحديد صف يتم تحديد العنصر الأول فقط في هذا الصف ولتحديد جميع العناصر داخل أداة ال ListView نقوم بجعل خاصية FullRowSelect = True . حمل المثال التوضيحي من هنا هناك أيضاً خصائص أخرى لأداة ال ListView يمكنك استخدامها أيضاً كما يلي ● Appearance : وهي لتحديد مظهر أداة ال ListView ولها قيمتين وهما ccFlat لجعل أداة الListView مسطحة و cc3D وهي لجعل أداة الListView ثلاثية الأبعاد. ● BackColor : لتغيير لون خلفية أداة ال ListView . ● FlatScrollBar : لتحديد مظهر أشرطة التمرير لأداة ال ListView وهي خاصية ذات قيمة منطقية . ● ForeColor : لتحديد لون الخط . ● GridLines : وهي خاصية لجعل أداة ال ListView كالشبكة وهي خاصية ذات قيمة منطقية. ● HideColumnHeaders : وهي لإخفاء العناوين الرأسية وهي خاصية ذات قيمة منطقية. ● HotTracking : وهي خاصية لتتبع شريط التحديد وهي خاصية ذات قيمة منطقية. ● HoverSelection : وهذه الخاصية عند تفعيلها يتم وضع شريط التحديد على الصف الذي يمر عليه مؤشر الفأرة. ● MultiSelect : وهذه الخاصية تستخدم لتحديد أكثر من صف في نفس الوقت وهي خاصية منطقية. ● Picture : وهي لوضع خلفية لأداة ال ListView . ● PictureAlignment : وهي لتحديد محاذاة خلفية ال ListView . ● Sorted : يتم ضبط هذه الخاصية لتساوي True لترتيب العناصر. ● SortKey : تستخدم هذه الخاصية لتحديد رقم العمود الذي نريد ترتيب البيانات بواسطته حيث رقم أو عمود هو 0 ● SortOrder : تستخدم هذه الخاصية لتحديد نمط ترتيب العناصر داخل ال ListView ولها قيمتين وهما lvwAscending لترتيب العناصر بشكل أبجدي تصاعدياً و lvwDescending لترتيب العناصر بشكل أبجدي تنازلياً . برمجة مثال لربط ال ListView بقاعدة البيانات في البدء ننشئ قاعدة بيانات وننشئ داخلها جدول اسمه Table1 يحتوي أربع حقول وهي ID , Name , Number , Address ثم ضعها في مجلد المشروع . سنستخدم مكتبة Ado في ربط قاعدة البيانات اذهب إلى قائمة Project اختر Reference ثم اختر مكتبة Microsoft ActiveX Object كما في الصورة التالية سنعرف في الGeneral المتغيرين التاليين Dim RS As ADODB.RecordsetDim DB As ADODB.Connection حيث سنستخدم المتغير DB في الاتصال بقاعدة البيانات والمتغير RS في التعامل مع الجداول والحقول . في حدث ال Form_Load استخدم الكود التالي في قاعدة البيانات Set RS = New ADODB.Recordset DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "\Sniper.mdb" DB.CursorLocation = adUseClientSet DB = New ADODB.Connection ثم سنقوم بتحديد أسلوب العرض للبيانات وجعل شريط التحديد يحدد جميع العناصر في الصف كما في الكود التالي ListView1.FullRowSelect = TrueListView1.View = lvwReport ثم سنضيف ثلاثة عناوين رأسية كما يلي ListView1.ColumnHeaders.Add , , "Number" ListView1.ColumnHeaders.Add , , "Address"ListView1.ColumnHeaders.Add , , "Name" نعرف متغيّر من نوع ListItem كما يلي Dim Lst As ListItem If RS.State = adStateOpen Then RS.Close إغلاق المتغير RS إذا كان مفتوحاً RS.Open "Select * From Table1", DB, adOpenDynamic, adLockOptimistic جملة الاستعلام لجلب جميع البيانات الموجودة داخل ال Table1 Do While Not RS.EOF Set Lst = ListView1.ListItems.Add(, , RS!Name) Lst.ListSubItems.Add , , RS!Number Lst.ListSubItems.Add , , RS!Address RS.MoveNext Loop نستخدم هنا حلقة Do While .. Loop لملئ أداة ال ListView حتى نصل للسجل الأخير في قاعدة البيانات نسند المتغير Lst للوظيفة Add التي تضيف حقل Name في السجل لأداة الListView , ثم نستخدم المتغير Lst في إضافة العمود الثاني (Number) والعمود الثالث (Address) ننتقل إلى السجل التالي , ثم نستخدم Loop لإغلاق الحلقة. ويمكن الاستغناء عن الوظيفة Add للمتغير Lst واستخدام الوظيفة SubItems ليصبح الكود كما يلي Set Lst = ListView1.ListItems.Add(, , RS!Name) Lst.SubItems(1) = RS!Number Lst.SubItems(2) = RS!Address RS.MoveNext LoopDo While Not RS.EOF صورة المثال بعد التشغيل حمل المثال التوضيحي من هنا ملاحظات قد تهمك في حالة استخدام أداة ال ListView كأداة لعرض البيانات ● حذف العنصر المحدد يتم باستخدام الكود التالي ListView1.ListItems.Remove ListView1.SelectedItem.Index ● حذف جميع العناصر المحددة في أداة الListView عند تفعيل خاصية MultiSelect باستخدام الكود التالي Dim i As Integer For i = ListView1.ListItems.Count To 1 Step -1 If ListView1.ListItems(i).Selected = True Then ListView1.ListItems.Remove i Next i حيث في هذا الكود نستخدم حلقة For .. Next لكن كما تلاحظ فإننا نستخدم هنا الحلقة بالعكس وذلك حتى يتم حذف العناصر الصحيحة في أداة الListView لأننا لو قمنا بحذف عنصر من بداية العناصر فإن جميع مواقع العناصر الأخر ستتغير . ● عرض بيانات الصف المحدد في أداة ال ListView كما في الكود التالي Private Sub ListView1_Click() Text1.Text = ListView1.SelectedItem.Text Text2.Text = ListView1.SelectedItem.SubItems(1) Text3.Text = ListView1.SelectedItem.SubItems(2) End Sub حيث استخدمنا هذا الكود في حدث ListView1_Click فيتم عرض العنصر الأول في أداة Text1 طبعاً لأول عنصر في الصف نستخدم خاصية Text وباقي العناصر في الصف نستخدم الخاصية SubItems . ● عمل AutoSize للأعمدة الموجود في أداة ال ListView : سنستخدم هنا دالة SendMessage وهي إحدى دوال ال Api سنكون هنا دالة بسيطة لاستخدامها في حالة كان لدينا أكثر من ListView كما يلي هذه هي دالة SendMessage وبعض ثوابتها Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const LVM_FIRST = &H1000 Private Const LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30) Private Const LVSCW_AUTOSIZE = -1 Private Const LVSCW_AUTOSIZE_USEHEADER = -2 وهذه هي الدالة التي قمنا بتصميمها Public Function AutoSizeListView(xListView As ListView) Dim i As Integer For i = 0 To xListView.ColumnHeaders.Count - 1 SendMessage xListView.hWnd, LVM_SETCOLUMNWIDTH, i, LVSCW_AUTOSIZE_USEHEADER Next i End Function وفي حالة أردنا استخدام هذه الدالة نقوم فقط باستدعائها لأداة ال ListView التي نريد أن نعمل لها AutoSize . كما يلي AutoSizeListView ListView1 ثانياً : استخدام أداة ال ListView عندما تكون خاصية View = lvwIcon طبعاً عندما يكون أسلوب العرض lvwIcon فلن يختلف عن أسلوب العرض lvwReport من حيث إضافة العناصر لكن هنا لا يوجد أعمدة ولا ColumnHeaders (عنوانين رأسية) وهناك خصائص أخرى لا نستخدمها في هذه الحالة وسيكون شكل ال ListView كما في الشكل التالي لكن في هذه الحالة سنستخدم الباراميتر Key للوظيفة Add لنتمكن من التعامل بسهولة مع كل عنصر. سنضيف 5 عناصر كما في الصورة السابقة , سنبدأ الآن في برمجة المثال سنحتاج في هذا المثال أداة ImageList تحتوي على بعض الصور كما في الصورة التالية في حدث Form_Load الكود التالي ListView1.View = lvwIcon لتحديد أسلوب عرض الأداة وهو lvwIcon ListView1.Icons = ImageList1 لتحديد مصدر الإيقونات التي سيتم استخدامها في الListView ثم الكود التالي For i = 1 To 5 ListView1.ListItems.Add , "M" & i, "Sniper" & i, i Next iDim i As Integer قمنا بتعرف المتغير i لاستخدامه في حلقة For .. Next ثم قمنا بتحديد عدد دورات الحلقة For .. Next وهي من 1 إلى 5 ثم سيتم إضافة عنصر في دورة كما هو ملاحظ من الكود حيث سيكون ال Key للعنصر الأول هو M1 العنصر الثاني هو M2 ... وهكذا . مع ملاحظ أن ال Key لا يجب أن يتكرر عند إضافة العناصر , وبالنسبة لباراميتر الأيقونة يتم تحديده بكتابة رقم ال Index للصورة المراد إضافتها للعنصر المضاف مع ملاحظ أن الباراميترالذي يتم إضافة رقم ال Index هو الباراميتر Icon وليس الباراميتر SmallIcon . ثم قمنا بإغلاق حلقة Next . إذن الكود النهائي سيكون كما يلي ListView1.View = lvwIcon ListView1.Icons = ImageList1 Dim i As Integer For i = 1 To 5 ListView1.ListItems.Add , "M" & i, "Sniper" & i, i Next i End SubPrivate Sub Form_Load() الآن انتهينا من تصميم المثال .. طيب السؤال الآن كيف سنقوم بربط كل أيقونة بكود معيّن عن النقر DblClick مثلاً ؟ .. الجواب طبعاً باستخدام ال Key لكل عنصر .. تابع معي .. سنقوم باستخدام جملة Select Case في حدث ListView1_DblClick كما في الكود التالي Select Case ListView1.SelectedItem.Key Case "M1" Form2.Show Case "M2" Form3.Show Case "M3" MsgBox "Programmed By Sniper.ps" Case "M4" MsgBox "www.vb4arab.com" Case "M5" End End Select End SubPrivate Sub ListView1_DblClick() حيث في هذا الكود نستخدم جملة بناء على قيمة الKey للعنصر المحدد لذلك استخدمنا الخاصية SelectedItem ثم قلنا أنه في حالة كان ال Key للعنصر قيمته هي M1 فسيتم إظهار الForm2 وبنفس الطريقة لجميع العناصر. حمل المثال التوضيحي من هنا ثالثاً : استخدام أداة ال ListView عندما تكون خاصية View = lvwSmallIcon و lvwList في هاتين الحالتين لن تختلفا عن الحالة lvwIcon إلا في نمط عرض الأيقونات حيث في حالة lvwSmallIcon ستظهر الإيقونات كما في الصورة التالية وفي حالة lvwList ستظهر الإيقونات كما في الصورة التالية حمل المثال التوضيحي من هنا أسأل الله العظيم أن أكون قد وفقت في الشرح تحياتي للجميع
  5. السلام عليكم ورحمة الله وبركاته اخواني الكرام في المرفقات مثال لحفظ الصور في قاعدة البيانات باستخدام مكتبة Ado أتمنى أن يفيدكم وفقكم الله حفظ الصور في قاعدة البيانات.rar
  6. السلام عليكم ورحمة الله وبركاته أخي الكريم راجع الرابط التالي http://www.arabteam2000-forum.com/index.php?showtopic=253333 وفقك الله
  7. checkListBox

    السلام عليكم ورحمة الله وبركاته أختي الكريمة المثال في المرفقات باستخدام أداة الـ ListView صحيح أخي فأنا لم أتطرق له بشكل تفصليلي .. وإن شاء الله المثال في المشاركة يوضح ما كنت أقصده وفقنا وإياكم الله WindowsApplication1.rar
  8. checkListBox

    السلام عليكم ورحمة الله وبركاته أختي الكريمة بالإمكان استخدام أداة ListView بدلاً من checkListBox لأنها ستعطيك الخصائص التي تريدينها بسهولة مقالة] شرح تفصيلي لأداة ال ListView وكيفية استخدامها وفقك الله
  9. وعليكم السلام ورحمة الله وبركاته حياك الله أخي الحبيب Najy Ibraheem .. إن شاء الله أكون عند حسن ظنك وفقنا وإياكم الله
  10. السلام عليكم ورحمة الله وبركاته تم تعديل المثال أخي الكريم .. أعتذر عن الخطأ في الكود وفقك الله ColorDuplicateExample3.rar
  11. السلام عليكم ورحمة الله وبركاته أخي الكريم تفضل المثال بعد التعديل وفقك الله ColorDuplicateExample2.rar
  12. السلام عليكم ورحمة الله وبركاته أخي الكريم تفضل المثال بعد التعديل وفقك الله Example2.rar
  13. السلام عليكم ورحمة الله وبركاته اخواني الكرام في المرفقات مثال لكيفية جلب حالة أي زر في لوحة المفاتيح وقد قمت بتصميم المثال لتظهر حالة الزر Enter على سبيل المثال لا الحصر ملاحظة : الدالة ترجع قيمة منطقية إما True أو False أتمنى أن تستفيدوا منه وفقكم الله GetKeyState.rar
  14. السلام عليكم ورحمة الله وبركاته أخي الكريم المثال بعد التعديل في المرفقات وفقك الله ColorDuplicateExample.rar
  15. وعليكم السلام ورحمة الله وبركاته تفضل أخي الكريم المثال بعد التعديل في المرفقات وفقك الله Example.rar
  16. السلام عليكم ورحمة الله وبركاته أخي الكريم جواد في المرفقات مثال كنت قد صممته منذ زمن وستجد فيه ما تريد بإذن الله وأي استفسار إن شاء الله حاضر للإجابة وفقك الله ListView.rar
  17. السلام عليكم ورحمة الله وبركاته في برامجنا قد نحتاج إلى زر لمساعدة المستخدم على استخدام البرنامج أو قد يستخدم المبرمج زر ليعطي معلومات عن نفسه .. بيئة الفيجوال بيسك توفر زر لهذا الغرض كما في الصورة . يجب ضبط كل من الخصائص التالية (خصائص الـ Form) كما يلي HelpButton = True MaximizeButton = False MinimizeButton = False لبرمجة هذا الزر نذهب إلى نافذة الكود ونختار الحدث Form_HelpButtonClicked كما في الصورة وفي المرفقات مثال للتوضيح بالتوفيق للجميع. HelpButtonExample.rar
  18. السلام عليكم ورحمة الله وبركاته قد نحتاج عند إظهار رسالة عرض تعليمات للمستخدم حول موضوع ما أو لحل مشكلة ما. ولبرمجة هذا الزر نستخدم حدث Form_HelpRequested . مع مراعاة ضبط المعامل displayHelpButton = True في دالة MessageBox . والمثال التوضيحي في المرفقات وفقكم الله HelpButtonInMessageBox.rar
  19. من قائمة Project اختر Referance ستظهر لك نافذة اضغط على زر Browsers واختر ملف الDll الذي تريده ضع علامة صح في المربع واضغط Ok