تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الcombobox أحد حقول الDataGridView
#1
كيف يمكن بدون كود أن نجعل أحد حقول ال DataGridView عبارة عن قائمة منسدلة مثل الcombobox
أى هل توجد أداة تقوم بذلك
أوكيف يمكن ذلك من خصائص ال DataGridView أو أثناء عمل الجدول بقاعدة البيانات
أنا ان أردت جعل الحقل الخامس مثلآ عبارة عن قائمة منسدلة (ان أردت عمل ذلك باللغة القديمةVB6) فسأضع فى الفورم combobox  وأكتب الأكواد التالية حتى يتم وضعه فى الخلية المضغوط عليها وحتى يكون المكتوب فيه هو نفس المكتوب فيها
وحتى يتم تعديل قيمة هذه الخلية بالجدول طبقآ لما اختاره المستخدم من الcombobox


       Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Text =dg.Columns(5).Name
        ComboBox1.Width = dg.Columns(5).Width
        ComboBox1.Top = dg.Top
        ComboBox1.Height = dg.Rows(0).Height

        Dim Wdth As Single = 0
        For I = 0 To 4
            Wdth = Wdth + dg.Columns(I).Width
        Next I
 ComboBox1.Left = dg.Left + Wdth + 41.5
        ComboBox1.Top = dg.Top + 20.5
        ComboBox1.Text = dg(5, pos).Value
    End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim txt
        Dim pos As Integer
        pos = BindingContext(dt).Position
        txt = ComboBox1.SelectedItem
        dt.Rows(pos).Item(5) = txt
    End Sub

    Private Sub dg_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dg.CellEnter
        Dim pos, POS1
        pos = BindingContext(dt).Position : TextBox2.Text = pos
        If pos >= dt.Rows.Count Then GoTo 10
        POS1 = dg.FirstDisplayedScrollingRowIndex
        ComboBox1.Top = 22 * (pos - POS1) + dg.Top + 21
        ComboBox1.Text = dg(5, pos).Value
10:     pos = pos
    End Sub

هذا باللغة القديمةVB6
أما باللغة المتطورةVB.net فلا بد أن هناك أدوات جديدة أو خصائص جديدة لل DataGridView أو أى طرق أخرى تقوم لنا بعمل ذلك دون هذه الأكواد منا
ولكم ألف شكر
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#2
طبعآ الرقمين 4 ، 5 فى كود ال Form1_Load وفى كود الdg_CellEnter  لأنى كما ذكرت فى البداية أردت عمل القائمة المنسدلة عند الحقل الخامس
وطبعآ الأرقام 22 ، 21 ، 41.5 تختلف من DataGridView لأخرى
فأنا وضعت هذه الأرقام عندى لأنى وجدت ارتفاع الصف فى الDataGridView  عندى =22 وارتفاع شريط العناوين فيها =21
والمسافة بين بدايتها وبين أول عمود فيها =41.5 (عرض الشريط الرأسى الموجود فيه السهم)

ولكم ألف شكر
الرد
#3
السلام عليكم ورحمة الله وبركاته
اخي الكريم اسلام
انت الان مع صديقك الجديد Vb.net حاول اقفال باب VB6 مؤقتا 
للتعرف على اداة الداتا غرايد والتعامل مع خصائصها بدون اكواد اطلع على هذا الرابط ويمكنك البحث اكثر في النت
https://www.youtube.com/watch?v=RYcn3z7gNvs&t=377s
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: dalas , asemshahen5
#4
شكرآ لك
ولكن الشرح بهذا الرابط باللغة الانجليزية
وأنا لا أفهم منها شيئآ (لا أفهم منها الا المصطلحات المستخدمة فى لغة البرمجة)

ولكم ألف شكر
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#5
السلام عليكم
اخي اسلام
اولا اليك هذا الرابط باللغة العربية 
https://www.youtube.com/watch?v=gn1_GPkh...&index=288
وأخرا حتى ترتاح من عناء الكثير من الاستفسارات انصحك بمتابعة هذا الكورس من بدايته الى نهايته شرح بالعربي ممتاز
وهو للاخ المهندس احمد الزيني جزاه الله كل الخير
https://www.youtube.com/watch?v=Ifq4ZGWK...4n&index=1
موفق ان شاء الله 
والكل في المنتدى حاضر للمساعدة
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: dalas , اسلام الكبابى , asemshahen5
#6
بارك الله فيك


ولكم ألف شكر
الرد
تم الشكر بواسطة: dalas , asemshahen5
#7
بعد هذا الدرس الجميل
جعلت الColumnType لهذا الحقل الخامس (الذى هو"رقم الصف") من النوع DataGridViewComboBoxColumn
وجعلت ال DisplayMember بهذا الحقل وجعلت أيضآ ValueMember بهذا الحقل
فوجدته عند عمل الRUN يعرض لى قيم هذا الحقل لجميع سجلات قاعدة البيانات
أى يعرض رقم الصف لجميع الطلاب . مثلآ( 1  2  4  4  5  4  3  2  3  1  5  2  2 )
ولكنى أريده يعرض فقط خمسة قيم يختار منها المستخدم واحدة(أى 1  2  3  4  5)
فحاولت كتابة هذه القيم فى الخاصية ITEMS فلم أستطع(كلما أكتبها وأضغط على OK أجده أزالها وكأنى لم أكتب شيئآ)

فكيف يمكن ذلك ؟

ولكم ألف شكر
الرد
تم الشكر بواسطة:
#8
كود :
   Dim cmb As New DataGridViewComboBoxColumn()
       cmb.HeaderText = "Select Data"
       cmb.Name = "cmb"
   
       For i As Integer = 1 To 5
           cmb.Items.Add(i)
       Next

       dgv.Columns.Add(cmb)
سورس كود برنامج محاسبة ومبيعات احترافي ومتكامل- قم بالاطلاع على البرنامج 
 مجاناااااا
واتساب 00963951283515
الرد
تم الشكر بواسطة: اسلام الكبابى


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل مجموعة حقول aftfm 10 1,237 09-03-21, 08:12 AM
آخر رد: aftfm
  التنقل بين حقول textbox paveldida 11 1,691 02-05-20, 11:28 AM
آخر رد: WaeLx
  [VB.NET] مشكلة فى إضافة حقول جديدة فى جدول موجود freehego 17 2,419 18-02-20, 09:08 PM
آخر رد: freehego
  مشكلة في حفظ حقول من تكست بوكس علي قاعدة بيانات بواسطة داتاسيت Abdalazim19 20 3,101 02-09-19, 07:32 PM
آخر رد: Abdalazim19
  التعامل مع قواعد البيانات بأسماء حقول عربية sads 3 916 03-04-19, 12:52 AM
آخر رد: elgokr
  إضافة حقول DateTimePicker الى قاعدة البيانات Hamoody 0 848 12-01-19, 02:21 AM
آخر رد: Hamoody
  [سؤال] مساعدة في ربط 3 حقول combobox jamalsinani 2 1,285 18-11-18, 09:00 PM
آخر رد: jamalsinani
  مشكلة فى اضافة حقول جديدة فى قاعدة البيانات و ربطها بالفيجوال استوديو nabil.1710 1 1,641 18-10-18, 01:09 PM
آخر رد: nabil.1710
  [سؤال] إستفسار عن البحث في حقول تم تشفيرها princelovelorn 7 1,994 03-10-18, 07:58 PM
آخر رد: princelovelorn
  ظهور رسالة خطأ عند الإنتقال إلى حقول ال Datagridview Hazem1 2 917 18-08-18, 06:59 PM
آخر رد: elgokr

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم