12-09-21, 11:19 PM
كيف يمكن بدون كود أن نجعل أحد حقول ال DataGridView عبارة عن قائمة منسدلة مثل الcombobox
أى هل توجد أداة تقوم بذلك
أوكيف يمكن ذلك من خصائص ال DataGridView أو أثناء عمل الجدول بقاعدة البيانات
أنا ان أردت جعل الحقل الخامس مثلآ عبارة عن قائمة منسدلة (ان أردت عمل ذلك باللغة القديمةVB6) فسأضع فى الفورم combobox وأكتب الأكواد التالية حتى يتم وضعه فى الخلية المضغوط عليها وحتى يكون المكتوب فيه هو نفس المكتوب فيها
وحتى يتم تعديل قيمة هذه الخلية بالجدول طبقآ لما اختاره المستخدم من الcombobox
هذا باللغة القديمةVB6
أما باللغة المتطورةVB.net فلا بد أن هناك أدوات جديدة أو خصائص جديدة لل DataGridView أو أى طرق أخرى تقوم لنا بعمل ذلك دون هذه الأكواد منا
ولكم ألف شكر
أى هل توجد أداة تقوم بذلك
أوكيف يمكن ذلك من خصائص ال 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
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 أو أى طرق أخرى تقوم لنا بعمل ذلك دون هذه الأكواد منا
ولكم ألف شكر