![]() |
|
|
|
#1 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته إن شاء الله سنسرد هنا أفكار وتلميحات عن التعامل مع أداة عرضة البيانات DataGridView الخاصة بإصدار 2005 من لغة دوت نت ستكون الأفكار غير منتظمة من حيث التدريج التعليمي ستجد تلميحة عالية المستوى وربما بعدها تلميحة بسيطة ================================================== = تلميحة رقم ( 1 ) : أحيانا يكون ادخال البيانات يكون اجباري للمستخدم وتريد ألا تنتقل الخلية بدون أن يدخل المستخدم قيمة للخلية - - - - - - كيف نحل ذلك فى الحدث DataGridView_CellValidating حدث أثناء التحقيق للخلية رمز:
Private Sub DataGridView_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView.CellValidating
If DataGridView2.IsCurrentCellDirty Then
If e.FormattedValue = String.Empty Then
e.Cancel = True
End If
End If
End Sub
لن ينتقل من الخلية المؤشر حتى تدخل قيمة أعتقد الكود سهل وبسيط وما يحتاج حكي بلسان أهل الشام
|
|
|
|
| الأعضاء التالين شكروا BADRMEDIA على هذا الموضوع : | abdhassan (26-09-09), محمد مهيان (03-03-09), Ibrahim_vb (09-08-09), mr_hany2008 (04-10-08), Muhanned (18-02-09), فيجوال .نت (15-01-10) |
|
|
#2 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
ماذا لو أردت أن تجبر المستخدم على ادخال أرقام فقط فى الخلايا
ورب مصائب قوم عند قوم منافع وتبقى فى يدك وتقسم لغيرك هذا فعلاً هو الحل فى حدث EditingControlShowing 1 - سننشأ عنصر من نوع TextBox 2- ثم نساويه بعنصر الخلية 3- ثم نرسل لك مقبض ( Handle ) لحدث Keypress لنتحكم فى نوع البيانات المدخلة حدث EditingControlShowing لعنصر DataGridView رمز:
Private Sub DataGridView_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView.EditingControlShowing
Dim TextEdit As TextBox = e.Control
RemoveHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number
AddHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number
End Sub
حدث KeyPress لكتابة أرقام فقط للعنصر المرسل منه المقبض ( Handle ) رمز:
Public Sub TextBox_KeyPress_Number(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim KeyAscii As Short = Asc(e.KeyChar)
If KeyAscii = 8 Then KeyAscii = 8 : Exit Sub
If KeyAscii <= 47 Or KeyAscii > 57 Then KeyAscii = 0
If KeyAscii = 0 Then
e.Handled = True
End If
End Sub
أعتقد ما فى مشكلة فى الكود من ناحية الشرح يعنى مليح بلغة أهل الصعيد |
|
|
|
| الأعضاء التالين شكروا BADRMEDIA على هذا الموضوع : |
|
|
#3 |
|
مبرمج محترف من الدرجة الأولى
تاريخ التسجيل: Jun 2007
المشاركات: 1,336
عدد مرات شكره للأعضاء: 170
تم شكره 387 مره في 162 مشاركه
قوة التقييم: 5 ![]() |
شكرا لك اخي العزيز ،
هل يمكنني طلب منك وضع التلميحات التالية لو أمكن : 1- تنسيق شرطي للخلايا ، فمثلا الخليه التي يكون محتواها اقل من 5 في عنود معين يتم تلوينها باللون الاحمر ، وكذلك في كامل الاداه ؟ 2- عمل بحث عن خليه معينه بدلاله النص الموجود فيها 3- الانتقال الى خليه معينه برمجيا ... وتقبل تحياتي
__________________
لطفا : لا اتلقى الأسئلة أو الاستفسارات على الرسائل الخاصة ، فقط العروض التجارية ![]() ![]() |
|
|
|
|
|
#4 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
تنسيق سطر أو خلية بناء على قيمة معين
بالنسبة للخلية الحدث CellFormatting للعنصر DataGridView مثال --------------------------------------------- عند العموم الرابع لو قيمة الخلية أكبر من 5 أجعل لونها أحمر أو بشكل أخر تغيير لون الصف رمز:
Private Sub DataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView.CellFormatting
If DataGridView.Columns(e.ColumnIndex).Index = 4 Then ' لو العمود كان رقم 4
If DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value > 5 Then ' لو الخلية قيمتها أكبر من 5
' هذا الكود تشغله لو حبيت تلون الخلية بس
DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Style.BackColor = Color.Red
' هذا الكود تشغله لو حبيت تلون السطر كله
'' DataGridView.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Red ' الكود موقوف الان
End If
End If
End Sub
|
|
|
|
|
|
#5 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
إذا أردت أن تنتقل خلية معينة
يكون برقم الصف ورقم الخلية الذى هو رقم العمود الظاهر وليس المخفي رمز:
DataGridView.CurrentCell = DataGridView.Rows(رقم الصف).Cells(رقم الخلية) عُدلت بواسطة BADRMEDIA; 12-06-07 الساعة 10:42 PM |
|
|
|
| العضو التالي يشكر BADRMEDIA على هذه المشاركة : | محمد أسامة جندية (29-05-09) |
|
|
#6 |
|
مراقب منتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,122
عدد مرات شكره للأعضاء: 2
تم شكره 74 مره في 47 مشاركه
قوة التقييم: 5 ![]() |
تشكر اخ Badrmedia على هذا المجهود الطيب والرائع
__________________
"أللهم أجزي عنأ محمداً ما هو أهله" |
|
|
|
|
|
#7 |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 5
عدد مرات شكره للأعضاء: 0
تم شكره 3 مره في 2 مشاركه
قوة التقييم: 0 ![]() |
السلام عليكم ورحمة الله وبركاته
كعادتك دائماً أخ أحمد متميز وأقدم للأعضاء طريقة التعامل مع الـ DataGridView كما في الفيجوال بيسيك 6 ( الطريقة القديمة ) اليدوية رمز:
Conn.Open()
cmd.Connection = Conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * FROM categoryes where storename='" & str_store & "' order by catename;"
dr = cmd.ExecuteReader
DataGridView1.ColumnCount = 5
DataGridView1.Columns(0).HeaderText = "الرقم"
DataGridView1.Columns(1).HeaderText = "إسم الصنف"
DataGridView1.Columns(2).HeaderText = "نوع الصنف"
DataGridView1.Columns(3).HeaderText = "الكمية"
DataGridView1.Columns(4).HeaderText = "سعر الصنف"
Dim n As Integer
n = -1
Do While dr.Read
n += 1
DataGridView1.RowCount += 1
DataGridView1.Item(0, n).Value = dr.Item("id")
DataGridView1.Item(1, n).Value = dr.Item("catename")
DataGridView1.Item(2, n).Value = dr.Item("catetype")
DataGridView1.Item(3, n).Value = dr.Item("catequantity")
DataGridView1.Item(4, n).Value = dr.Item("catesaleprice")
Loop
dr.Close()
Conn.Close()
|
|
|
|
| الأعضاء التالين شكروا الأستاذ على هذا الموضوع : | mr.black (16-10-08), وديع بلمختار (13-10-09) |
|
|
#8 | |
|
مبرمج محترف من الدرجة الأولى
تاريخ التسجيل: Jun 2007
المشاركات: 1,336
عدد مرات شكره للأعضاء: 170
تم شكره 387 مره في 162 مشاركه
قوة التقييم: 5 ![]() |
اقتباس:
ولكني عندما كنت ابرمج بفيجوال بيسك 6 لم استخدم الطريقة السابقة مع ADO والسبب انني كنت استخدم الاداه MSHFlexGrid بدلا من MSFlexGrid والتي هي مصممه للعمل مع ADO تحياتي لكم
__________________
لطفا : لا اتلقى الأسئلة أو الاستفسارات على الرسائل الخاصة ، فقط العروض التجارية ![]() ![]() |
|
|
|
|
|
|
#9 |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 3
عدد مرات شكره للأعضاء: 0
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0 ![]() |
السلام عليكم ورحمة الله وبركاته
بارك الله لك أخى الحبيب وجعل مجهودك هذا وما نفعت به فى ميزان حسناتك |
|
|
|
|
|
#10 | |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 4
عدد مرات شكره للأعضاء: 0
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0 ![]() |
اقتباس:
__________________
Anwar Saqqar Software Developer |
|
|
|
|
|
|
#11 |
|
مبرمج محترف من الدرجة الأولى
تاريخ التسجيل: Jun 2007
المشاركات: 1,336
عدد مرات شكره للأعضاء: 170
تم شكره 387 مره في 162 مشاركه
قوة التقييم: 5 ![]() |
ما شاء الله الموضوع صار اكثر تميزا ،
ياريت لو تكمل مشوارك اخي الكريم ، وياريت لو تتحدث حول كيفية تغيير عنوان عمود بشكل برمجي ، تحياتي
__________________
لطفا : لا اتلقى الأسئلة أو الاستفسارات على الرسائل الخاصة ، فقط العروض التجارية ![]() ![]() |
|
|
|
|
|
#12 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
لتغيير اسم العمود برمجيا - نسند قيمة للخاصة HeaderText الخاصة ب Columns
رمز:
DataGridView.Columns(x).HeaderText = "vb4arab" حيث x هو رقم العمود ويمكن كتابة اسم العمود بين علامتين تنصيص "BM" |
|
|
|
|
|
#13 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
أثناء البحث داخل مكتبة مايكروسوفت MSDN وجدت هذا الكلاس ( Class Lib )
الخاص بارفاق نوع TextMask داخل عمود DataGridView كل ما تقوم به ارفاق الكلاس كمرجع ( Reference ) وستجده موجود فى أنواع الأعمدة فى أداة DataGridView وتسند له خاصية Mask برمجيا لأن الكلاس به بعض الأخطاء - المثال من تصميم المهندس عمرو عبد الباسط من شركة سيجال سوفت |
|
|
|
| العضو التالي يشكر BADRMEDIA على هذه المشاركة : | وليد المخلافي (27-05-10) |
|
|
#14 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
هذا المثال صممته على كلاس من مكتبة MSDN خاص باضافة عمود من نوع DateTimePicker
المثال به إنشاء العمود برمجياً وأيضاً فى وضع التصميم |
|
|
|
| الأعضاء التالين شكروا BADRMEDIA على هذا الموضوع : |
|
|
#15 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
كيف حال الأخوة نأسف على البعد وإن شاء الله سيكون هناك دروس قيمة فى موضوع تحليل النظم
وأخرى فى أمور كثيرة تلميحة سريعة عن ارسال زر مكان أخر فى DataGrid كان زر Tab هو زر التصفح فى الخلايا وفى DataGridView الأسهم للتصفح ماذا لو أردت أن تجعل المستخدم يضغط زر الادخال Enter للتصفح بدل الأسهم فى حدث KeyDown رمز:
Private Sub DataGridView2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView2.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
SendKeys.Send("{Right}")
End If
عندما يرسل المستخدم زر الادخال نستدعى اجرائية الزر Right أعرف أن مثل هذه التلميحة بسيطة ولا تحتاج إلى شرح - لكن لنجعلها للمبدئيين إلى حين أن ينعم الله علينا بأن نضع دروس كبيرة تليق بالمنتدي العزيز فى أقرب وقت |
|
|
|
| الأعضاء التالين شكروا BADRMEDIA على هذا الموضوع : | محمد أسامة جندية (11-08-09), فيجوال .نت (15-01-10) |
|
|
#16 |
|
مراقب منتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,122
عدد مرات شكره للأعضاء: 2
تم شكره 74 مره في 47 مشاركه
قوة التقييم: 5 ![]() |
اخي الفاضل تشكر كثيرا على هذا الموضوع المتميز والمفيد وجزاك الله كل خير يا رب وربنا يوفقك
وفي انتظار الجديد منك اخ Badrmedia
__________________
"أللهم أجزي عنأ محمداً ما هو أهله" |
|
|
|
|
|
#17 |
|
عضو
تاريخ التسجيل: Jul 2007
المشاركات: 82
عدد مرات شكره للأعضاء: 1
شكر 4 مره في 1 مشاركة
قوة التقييم: 4 ![]() |
جزاكم الله خيراً
|
|
|
|
|
|
#18 |
|
عضو
تاريخ التسجيل: Jul 2007
المشاركات: 82
عدد مرات شكره للأعضاء: 1
شكر 4 مره في 1 مشاركة
قوة التقييم: 4 ![]() |
الاكواد فى غاية الروعة
|
|
|
|
|
|
#19 |
|
عضو
تاريخ التسجيل: Jul 2007
المشاركات: 82
عدد مرات شكره للأعضاء: 1
شكر 4 مره في 1 مشاركة
قوة التقييم: 4 ![]() |
انى سعيد لحصولى على هذه الاكواد
|
|
|
|
|
|
#20 |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 20
عدد مرات شكره للأعضاء: 0
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0 ![]() |
السلام عليكم
دى اكواد منقوله لجعل DateTimePicker يظهر كعمود داخل ال Grid معلش الموضوع مكرر --- اسف عُدلت بواسطة sherif_hfm; 18-07-07 الساعة 10:04 AM السبب: الموضوع مكرر !!!! |
|
|
|
|
|
#21 |
|
عضو
تاريخ التسجيل: Jul 2007
المشاركات: 82
عدد مرات شكره للأعضاء: 1
شكر 4 مره في 1 مشاركة
قوة التقييم: 4 ![]() |
جزاكم الله خيراً
![]() |
|
|
|
|
|
#22 |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 9
عدد مرات شكره للأعضاء: 0
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0 ![]() |
شكراً أخي BADRMEDIA
على هذ المجهود الرائع .. و لي استفسار هو: ما هو الحدث الذي يتم تنفيذه بعد استقرار المؤشر داخل صف من صفوف DataGridView غير الأحداث RowEnter, RowLeave, SetFocus مع شكري ---------------------------------------------------------------- سبحانك اللهم و بحمدك اشهد أن لا إله إلا أنت استغفرك و أتوب إليك |
|
|
|
|
|
#23 |
|
عضو
تاريخ التسجيل: Jul 2007
المشاركات: 82
عدد مرات شكره للأعضاء: 1
شكر 4 مره في 1 مشاركة
قوة التقييم: 4 ![]() |
شكراً اخى الكريم BADRMEDIA
Grazie molto BADRMEDIA باللغط الإطالية ![]() Vielen Dank BADRMEDIA اللغة الالمانية ![]() Gracias mucho BADRMEDIA باللغة الإسبانية
__________________
قال تعالى: (فَقُلْتُ اسْتَغْفِرُواْ رَبّكُمْ إِنّهُ كَانَ غَفّاراً (10) يُرْسِلِ السّمَآءَ عَلَيْكُمْ مّدْرَاراً (11) وَيُمْدِدْكُمْ بِأَمْوَالٍ وَبَنِينَ وَيَجْعَل لّكُمْ جَنّاتٍ وَيَجْعَل لّكُمْ أَنْهَاراً) [سورة: نوح] |
|
|
|
|
|
#24 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
الأخوة الأحبة الكرام / جزاكم الله خيراً
الله يعلم أنى ما كتبت هذه التلميحات إلا لوجه الله - نسأل الله الإخلاص وخاصة أن كثيراً ممن ينتقلون ل 2005 يشتكون من تعاملهم DataGridView فكتبت هذه التلميحات لأهم حالات فى التعامل معها وإن شاء الله سنكمل لأشياء أخري - لكن البعد بسبب الانشغال والمرض ==================================== الأخ المكرم / Mohammad.OOP أرجو توضيح غرضك لأصل معك للحل - وأسف على التأخير فى الرد فالمنتدى لا يرسل رسائل تنبيهة على المواضيع والله ولي التوفيق |
|
|
|
|
|
#25 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
شكراً أخي t_elsaghir --- بالعربية
Thanks my brother t_elsaghir --- بالانجليزية متشكرم برادرم t_elsaghir --- بالفارسية ممنون برادرم t_elsaghir --- بالفارسية tuskur edrim kardisim t_elsaghir --- بالتركية تودا رباه احم t_elsaghir --- بالعبرية شكريه برادر t_elsaghir --- بالاردو |
|
|
|
|
|
#26 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
|
|
|
|
|
|
#27 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
معلومة ::: Split Column In DataGridView هامة جداً
http://www.vb4arab.com/vb/showthread...0044#post10044 |
|
|
|
|
|
#28 |
|
المتميزون
تاريخ التسجيل: Jun 2007
المشاركات: 1,136
عدد مرات شكره للأعضاء: 44
تم شكره 214 مره في 101 مشاركه
قوة التقييم: 5 ![]() |
تلميحات قيمة اخي بدرميدا وفي محلها دائما
جعلة الله في ميزان حسناتك
__________________
مقالات ودروس متنوعه . . .
|
|
|
|
|
|
#29 |
|
مشرف المنتدى
تاريخ التسجيل: Jun 2007
المشاركات: 1,312
عدد مرات شكره للأعضاء: 132
تم شكره 717 مره في 290 مشاركه
قوة التقييم: 10 ![]() ![]() |
عند تحرير خلية وضغط زر الادخال Enter يتم الانتقال ليس للخلية المجاورة بل إلي الخلية التى بالأسفل لوجد صف أخر
لحل ذلك نضع هذه الاجرائية رمز:
Protected Overrides Function ProcessCmdKey _
(ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
Try
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
SendKeys.Send("{Tab}")
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
هذه الاجرائية ربما تتعارض مع بعض التخصيصات لك ولكن عليك بفهما أولاً لتستفيد منها |
|
|
|
|
|
#30 |
|
عضو جديد
تاريخ التسجيل: Jun 2007
المشاركات: 3
عدد مرات شكره للأعضاء: 0
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0 ![]() |
بارك الله فيكم جميعاً وجزاكم كل خير
|
|
|
|
![]() |
| يتصفح الموضوع حالياً: 1 (0 عضو و 1 ضيف) | |
| أدوات الموضوع | |
| طريقة العرض | |
|
|