كيفية تغيير موضع الصف من وضع داتاغريدفيف الظاهري؟
-
05-07-2019 - |
سؤال
وكيفية تغيير موضع الصف من وضع داتاغريدفيف الظاهري؟
المحلول
والجواب ماركوس هو الصحيح، ولكن قد تحتاج أيضا إلى تعيين الخاصية الخلية الحالية في داتاغريدفيف في ...
dgv.CurrentCell = dgv.Rows[0].Cells[0];
وأعتقد أن هذا سوف تمرير الشبكة. أيضا، أن تكون آمنة تماما، قد ترغب في إضافة هذا قبل خط آخر من التعليمات البرمجية ...
dgv.CurrentCell = null;
وهذا يضمن أنه إذا كان الصف الذي تريد بالفعل الصف نشطة ولتمريره خارج للتو من عرض، فإنه سيتم تمريرها إلى العرض مرة أخرى.
نصائح أخرى
لديك لمسح الموقف القديم ووضع واحدة جديدة
ووdataGridView1.SelectedRows جمع ديه الصفوف المحددة الحالية. اعتمادا على الخاصية MultiSelect من الشبكة قد تضطر إلى حلقة من خلال جميع الصفوف في SelectedRows ووضع علامة عليها كما غير محددة. إذا كنت وضع اختيار واحد، فقط تحديد الصف الجديد كما يجب اختيار مسح التحديد القديمة.
لتحديد صف معين (في هذه الحالة واحدة في الفهرس 0) كنت مجرد إضافة السطر dataGridView1.Rows [0] .Selected = صحيح؛
ويبدو أنك تتطلب ليس فقط تحديد الصف المحدد، ولكن أيضا الصف المعروضة. يمكنك الوصول إلى هذا الأخير مع الخاصية FirstDisplayedScrollingRowIndex
على داتاغريدفيف الخاص بك. واحد من الاجهزة مفيدة:
int lastShown = FirstDisplayedScrollingRowIndex + DisplayedRowCount(false) - 2;
if (lastShown < yourIndex)
FirstDisplayedScrollingRowIndex += yourIndex - lastShown;
else if (FirstDisplayedScrollingRowIndex > yourIndex)
FirstDisplayedScrollingRowIndex = yourIndex;
وسوف نتأكد الخاص الصف المحدد حديثا لا تختفي قبالة الشاشة عند التمرير لأعلى / أسفل برمجيا.
Else
If i = rowcount Then
Me.GridSaleItem.CurrentCell = Me.GridSaleItem.Rows(i - 1).Cells(0)
Me.GridSaleItem.Rows(i - 1).Selected = True
End If
End If
Next
Private Sub GridSaleItem_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridSaleItem.SelectionChanged
Dim rowcount As Integer
rowcount = GridSaleItem.Rows.Count
For i As Integer = 1 To rowcount
If i = 1 Then
'
Else
If i = rowcount Then
Me.GridSaleItem.CurrentCell = Me.GridSaleItem.Rows(i - 1).Cells(0)
Me.GridSaleItem.Rows(i - 1).Selected = True
End If
End If
Next
End Sub