Aracılığıyla paylaş


Nasıl yapılır: Windows Forms'da Verilerde Gezinme

Windows uygulamasında, veri kaynağındaki kayıtlarda gezinmenin en kolay yolu, BindingSource bir bileşeni veri kaynağına bağlamak ve ardından denetimleri BindingSourcebağlamaktır. Daha sonra BindingSource yerleşik gezinti yöntemini kullanarak, MoveNext, MoveLast, MovePrevious ve MoveFirstgibi seçeneklere erişebilirsiniz. Bu yöntemlerin kullanılması, BindingSource'nin Position ve Current özelliklerini uygun şekilde ayarlar. Ayrıca, Position özelliğini ayarlayarak bir öğeyi bulabilir ve geçerli öğe olarak ayarlayabilirsiniz.

Veri kaynağındaki konumu artırmak için

  1. Bağlanan veriniz için BindingSource'in Position özelliğini, gidilecek kayıt konumuna ayarlayın. Aşağıdaki örnekte, nextButton tıklandığında Position özelliğini artırmak için BindingSourceMoveNext yönteminin kullanılması gösterilmektedir. BindingSource, Northwindbir veri kümesinin Customers tablosuyla ilişkilendirilir.

    Not

    .NET Framework, konumu listenin sınırları dışında bir değere ayarlamanıza izin vermediğinden, Position özelliğinin ilk veya son kaydın ötesinde bir değere ayarlanması hataya neden olmaz. Uygulamanızda ilk veya son kaydı geçmiş olup olmadığınızı bilmek önemliyse, veri öğesi sayısını aşıp aşmayabileceğinizi 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ı aşıp aşmadığınızı kontrol etmek için

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

    Aşağıdaki örnekte, son veri öğesine ulaşıp ulaşmadığınız nasıl test edilebileceği gösterilmektedir. Örnekte, son öğedeyseniz formdaki Sonraki düğmesi etkisiz hale getirilir.

    Not

    Kodda gezindiğiniz listeyi değiştirirseniz, kullanıcıların yeni listenin tüm uzunluğuna göz atabilmesi için sonraki düğmesini yeniden etkinleştirmeniz gerektiğini unutmayın. Ayrıca, üzerinde çalıştığınız belirli BindingSource için yukarıdaki PositionChanged olayının olay işleme yöntemiyle ilişkilendirilmesi gerektiğini unutmayın. Aşağıda, PositionChanged olayını işlemek için bir yöntem örneği verilmiştir:

    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 IBindingListuyguluyorsa bunu BindingSourceFind yöntemini kullanarak yapabilirsiniz. IBindingList uygulayan veri kaynaklarına örnek olarak BindingList<T> ve DataViewverilebilir.

    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.