تقييم الموضوع :
  • 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)
سورس كود برنامج محاسبة ومبيعات احترافي  -  سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام   Abo_anas_kahwaji@
واتساب 00963951283515
الرد }}}
تم الشكر بواسطة: اسلام الكبابى
#9
بارك الله فيك

ولكن هذا الكود يقوم بعمل عمود جديد بعد آخر عمود فى ال[b]DataGridView[/b]
[b]فكيف يمكن وضع هذه الComboBoxColumn عند الحقل الخامس نفسه[/b]

إقتباس :أنا ان أردت جعل الحقل الخامس مثلآ عبارة عن قائمة منسدلة


إقتباس :جعلت الColumnType لهذا الحقل الخامس (الذى هو"رقم الصف") من النوع DataGridViewComboBoxColumn

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

ولكم ألف شكر
الرد }}}
تم الشكر بواسطة:
#10
ارفق المشروع او نسخة مصغرة منه افضل
الرد }}}
تم الشكر بواسطة:



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


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