Nasıl yapılır: Windows Forms Verilerinde Gezinme

Bir Windows uygulamasında, bir veri kaynağında kayıtlar arasında gezinmenin en kolay yolu, bir bileşeni veri kaynağına bağlamak ve ardından denetimleri BindingSource 'ye BindingSource bağlamaktır. Daha sonra yerleşik gezinti yöntemini , ve BindingSource gibi bir üzerinde MoveNextMoveLastMovePreviousMoveFirst kullanabilirsiniz. Bu yöntemlerin kullanımı, ve PositionCurrent özelliklerini uygun şekilde BindingSource ayarlar. Ayrıca, bir öğeyi bulabilir ve özelliğini ayarerek öğeyi geçerli öğe olarak Position ayarlayın.

Bir veri kaynağında konumu artırma

  1. Bağlı Position verileriniz için BindingSource özelliğini, gitmek için kayıt konumu olarak ayarlayın. Aşağıdaki örnek, tık olduğunda MoveNext özelliğinin BindingSource artırımı Position için nextButton yönteminin kullanımı göstermektedir. BindingSource, bir veri kümesi Customers tablosuyla Northwind ilişkilendirildi.

    Not

    özelliği ilk veya son kaydın ötesinde bir değere ayarlamak hataya neden olmaz çünkü .NET Framework konumu listenin sınırlarının dışındaki bir değere ayarlamaya Position izin vermez. Uygulamanıza ilk kaydı veya son kaydı aşıp aşmamanızı bilmek önemli ise, veri öğesi sayısını aşıp aşmayıp aşmay olmadığınızı test etmek için mantık ekleyin.

    private void nextButton_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveNext();
    }
    
    Private Sub nextButton_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles nextButton.Click
        Me.customersBindingSource.MoveNext()
    End Sub
    

Sonu veya başlangıcı geçmiş olup olmadığı kontrol etmek için

  1. Olay için bir olay PositionChanged işleyicisi oluşturun. İşleyicide, önerilen konum değerinin gerçek veri öğesi sayısını aşıp aşmadı sınayabilirsiniz.

    Aşağıdaki örnek, son veri öğesine ulaşıp ulaşmama konusunda nasıl test gerçekleştirebilirsiniz? Örnekte, son öğedeysiniz, formda Sonraki düğmesi devre dışı bırakılır.

    Not

    Kodda gezinirken gezinen listeyi değiştirirken, kullanıcıların yeni listenin tüm uzunluğuna göz atması için Sonraki düğmesini yeniden etkinleştirmeniz gerektiğini göz atabilirsiniz. Ayrıca, üzerinde çalışmakta olduğunu özel için yukarıdaki olayın olay işleme PositionChangedBindingSource yöntemiyle ilişkilendiril olması gerektiğini de farkında olmak gerekir. Aşağıda, olayı işlemeye örnek olarak bir yöntem ve bir örnek ve ardından ve bir örnek ve bir örnek ve ardından yer alan bir örnek ve daha fazla bilgi ve daha fazla bilgi için aşağıdaki adımları PositionChanged kullanabilirsiniz:

    void customersBindingSource_PositionChanged(object sender, EventArgs e)
    {
        if (customersBindingSource.Position == customersBindingSource.Count - 1)
            nextButton.Enabled = false;
        else
            nextButton.Enabled = true;
    }
    
    Sub customersBindingSource_PositionChanged(ByVal sender As Object, _
        ByVal e As EventArgs)
    
        If customersBindingSource.Position = _
            customersBindingSource.Count - 1 Then
            nextButton.Enabled = False
        Else
            nextButton.Enabled = True
        End If
    End Sub
    

Bir öğeyi bulmak ve geçerli öğe olarak ayarlamak için

  1. Geçerli öğe olarak ayarlamak istediğiniz kaydı bulun. Veri kaynağınız Find kullanıyorsa, BindingSource bunu yöntemini kullanarak gerçekleştirebilirsiniz. IBindingList uygulayan veri kaynaklarına bazı örnekler IBindingList ve BindingList<T> 'tir. DataView

    void findButton_Click(object sender, EventArgs e)
    {
        int foundIndex = customersBindingSource.Find("CustomerID", "ANTON");
        customersBindingSource.Position = foundIndex;
    }
    
    Sub findButton_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles findButton.Click
        Dim foundIndex As Integer = customersBindingSource.Find("CustomerID", _
            "ANTON")
        customersBindingSource.Position = foundIndex
    End Sub
    

Ayrıca bkz.