Udostępnij za pośrednictwem


Rozwiązywanie problemów z formantem DataRepeater (Visual Studio)

W tym temacie opisano typowe problemy, które mogą wystąpić podczas pracy z DataRepeater kontroli.

DataRepeater klawiatury i myszy, zdarzenia nie są wywoływane

Niektóre DataRepeater zdarzeń dotyczących formantów, takich jak zdarzenia klawiatury i myszy, nie są wywoływane.Jest to zgodne z projektem.DataRepeater Samego formantu jest kontenerem dla DataRepeaterItem obiekty i nie są dostępne w czasie wykonywania.DataRepeaterItem Nie narażać zdarzeń w czasie projektowania.W związku z powyższym klikając element lub element nie ma fokusu, naciśnięcie klawisza nie podnieść zdarzenie.

Wyjątek ten jest wtedy, gdy Padding właściwość jest ustawiona na dużej wystarczająco wartość narazić krawędzie DataRepeater kontroli.W tym przypadku klikając przycisk narażone marginesie podniesie zdarzeń myszy.

Aby rozwiązać ten problem, należy dodać Panel kontroli do ItemTemplate sekcji DataRepeater kontroli, a następnie dodać pozostałe formanty do Panel.Następnie można dodać kod Panel formantu obsługę zdarzeń dla zdarzenia klawiatury i myszy.

DataRepeater jest częściowo ukryty za Nawigator powiązań

Kiedy najpierw dodać DataRepeater kontroli do formularza, a następnie dodać formanty powiązane z danymi z Źródła danych okna, BindingNavigator kontroli mogą być wyświetlane na górze DataRepeater kontroli.Jest to znane ograniczenie Źródła danych okna i jest zgodny z zachowaniem inne formanty, takie jak DataGridView kontroli.

Można albo move DataRepeater niższa niż BindingNavigator kontroli w czasie projektowania lub dodawanie kodu przypominającą następujące w Load obsługi zdarzeń.

DataRepeater1.Top = ProductsBindingNavigator.Height
dataRepeater1.Top = productsBindingNavigator.Height;

Formanty nie są poprawnie wyświetlane w czasie wykonywania

Niektóre formanty w DataRepeater kontroli mogą nie być wyświetlane zgodnie z oczekiwaniami w czasie wykonywania.Proces wykorzystywany do sklonować formantów z ItemTemplate do DataRepeaterItem nie może zawsze ustalić właściwości wszystkich formantów.Na przykład, jeśli dodasz niezwiązany ListBox kontroli do DataRepeater kontroli w czasie projektowania i wypełniania jej Items kolekcji z listy ciągów, ListBox będzie puste w czasie wykonywania.Wynika to proces klonowania nie brać pod uwagę Items właściwości.

Problemy, takie jak można naprawić, przywracając brakujące właściwości w ItemCloned zdarzenie, które występuje po zakończeniu klonowania domyślne.Poniższy przykład demonstruje, jak naprawić Items kolekcji ListBox kontroli w ItemCloned programu obsługi zdarzeń.

Private Sub DataRepeater1_ItemCloned(
    ByVal sender As Object, 
    ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs
  ) Handles DataRepeater1.ItemCloned

    Dim Source As ListBox = 
        CType(DataRepeater1.ItemTemplate.Controls.Item("ListBox1"), ListBox)
    Dim ListBox1 As ListBox = 
        CType(e.DataRepeaterItem.Controls.Item("ListBox1"), ListBox)
    For Each s As String In Source.Items
        ListBox1.Items.Add(s)
    Next 
End Sub
private void dataRepeater1_ItemCloned(object sender, 
    Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
    ListBox Source = (ListBox)dataRepeater1.ItemTemplate.Controls["listBox1"];
    ListBox listBox1 = (ListBox)e.DataRepeaterItem.Controls["listBox1"];
    foreach (string s in Source.Items)
    {
        listBox1.Items.Add(s);
    }
}

Brakuje Symbol zaznaczenia w nagłówku elementu

Po zmianie SelectionColor właściwość nagłówek elementu w DataRepeater kontroli, niektóre kolory może spowodować zniknięcie symbol zaznaczenia.Zmiana ItemHeaderSize właściwość również może spowodować zniknięcie symbol zaznaczenia.

Nie można zmienić kolor i rozmiar symbol zaznaczenia.

  • Jeśli ustawisz SelectionColor do White, symbol zaznaczenia nie będzie widoczny, gdy pierwszy jest zaznaczany element.

  • Jeśli ustawisz SelectionColor do Black, symbol zaznaczenia nie będzie widoczny, gdy formant jest zaznaczony, a symbolem ołówka nie będzie widoczny, gdy formant jest w trybie edycji.

  • Jeśli ItemHeaderSize właściwość jest ustawiona na wartość, która jest mniejsza niż 11, symbole wskaźników w nagłówku elementu nie będą wyświetlane.

Można udostępniać własne symbolu nagłówka i zaznaczenie elementu za pomocą PictureBox kontroli i monitorowania IsCurrent właściwość DataRepeaterItem w DrawItem zdarzenia DataRepeater kontroli.Aby uzyskać więcej informacji, zobacz IsCurrent.

Zobacz też

Zadania

Porady: wyświetlanie powiązanych danych w formancie DataRepeater (Visual Studio)

Porady: wyświetlanie formantów niepowiązanych w formancie DataRepeater (Visual Studio)

Porady: zmienianie układu formantu DataRepeater (Visual Studio)

Porady: zmienianie wyglądu formantu DataRepeater (Visual Studio)

Porady: wyświetlanie nagłówków elementów w formancie DataRepeater (Visual Studio)

Porady: wyłączanie dodawania i usuwania elementów DataRepeater (Visual Studio)

Porady: wyszukiwanie danych w formancie DataRepeater (Visual Studio)

Porady: tworzenie formularza wzorzec/szczegół za pomocą dwóch formantów DataRepeater (Visual Studio)

Koncepcje

Wprowadzenie do formantu DataRepeater (Visual Studio)