2011-04-27 2 views
0

Lorsque vous cliquez sur le bouton Points de suspension de ButtonEdit, dans l'événement ButtonClick de ButtonEdit, je lance un autre formulaire à partir duquel l'utilisateur fait un choix.DevExpress RepositoryItemButtonEdit

Cette forme de recherche informe ma forme originale de la valeur choisie.

Lorsque mon formulaire d'origine apprend la valeur choisie, il définit la valeur de la cellule associée à ButtonEdit, en utilisant la méthode SetCellValue. Toutefois, la valeur ne s'affiche pas jusqu'à ce que la cellule perd le focus. Est-il possible de provoquer l'affichage de la valeur pendant que la cellule avec le ButtonEdit comme RowEdit sur place a toujours le focus?

Répondre

2

Définissez view.ActiveEditor.EditValue.

+0

Cela semble prometteur. Je vais rapporter. Merci – Tim

+0

Fonctionne comme vous le souhaitez. Merci! – Tim

2

Lors de la gestion de l'événement ButtonClick, le paramètre de l'expéditeur transmis au gestionnaire d'événements représente l'instance de l'éditeur dont la valeur doit être modifiée. Donc, je voudrais poster une solution supplémentaire montrant comment définir la valeur de l'éditeur:

private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { 
    DevExpress.XtraEditors.ButtonEdit edit = sender as DevExpress.XtraEditors.ButtonEdit; 
    edit.EditValue = SomeValue; 
} 
+0

La deuxième solution ne fonctionnerait pas. Pourquoi? Parce que dans l'événement ButtonClick je lance un autre formulaire en tant que dialogue ("le formulaire de recherche"). Lorsque l'utilisateur fait un choix sur le formulaire de recherche, il déclenche un événement que mon formulaire d'origine écoute. C'est dans l'événement LookupItemChosen que je dois définir la valeur d'édition, pas dans l'événement ButtonClick. – Tim

+0

Dans la mesure du possible, je privilégierais la solution postée par DevExpress Team. Un RepositoryItem doit toujours avoir un "OwnerEdit" comme expéditeur de l'événement, mais une modification n'est pas toujours dans une "vue". Je m'attendrais également à ce qu'une boîte de dialogue de recherche possède une propriété pour sa valeur sélectionnée, au lieu de s'appuyer sur un événement qui s'y trouve. System.Windows.Forms.OpenFileDialog a par exemple sa propriété "FileName". – Snixtor