سؤال

وكيفية تغيير موضع الصف من وضع داتاغريدفيف الظاهري؟

نماذج Windows .

هل كانت مفيدة؟

المحلول

والجواب ماركوس هو الصحيح، ولكن قد تحتاج أيضا إلى تعيين الخاصية الخلية الحالية في داتاغريدفيف في ...

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top