Je travaille avec la suite Xtragrid faite par DEVEXPRESS. Je ne trouve aucune sorte de fonctionnalité pour le faire, mais je suis curieux si vous pouvez ajouter un bouton ou un lien hypertexte à une cellule de grille. P>
Contexte: J'ai une liste d'événements. Chaque événement a une heure, un démarrage / fin et une catégorie (utilitaire et entretien). Il peut y avoir des événements de départ et des événements d'arrêt. Ayant fait mon analyse du problème, j'ai décidé qu'avoir un temps de départ et une durée de recouvrement pour chaque événement ne fonctionnerait pas. P>
Donc, si un événement commence, j'enregistrerais l'heure actuelle à l'objet événement et définir l'événement "Démarrer". Je voudrais ajouter un bouton / hyperlien "stop" à une cellule de cette rangée. Si l'utilisateur souhaite enregistrer un événement des extrémités, le type d'événement, etc. serait copié à un nouvel événement avec le type 'Stop' et le bouton disparaîtrait. P>
J'espère que cela a du sens. P>
Edit: La réponse d'Aaronaught est en fait meilleur que ce que j'avais demandé à l'origine (un bouton), donc j'ai donc mis à jour la question. De cette façon, quiconque cherche à mettre un hyperlien dans une cellule peut bénéficier de son exemple :) p>
4 Réponses :
Je préfère utiliser du texte de style hyperlien en remplaçant le code de dessin et en manipulant les événements de déplacement / clic de la souris, car les boutons ne sont pas trop bien à la hauteur de la rangée typique d'une grille. Cependant, si un bouton est vraiment ce que vous voulez, vous devriez pouvoir faire cela à l'aide du dépôt Si vous êtes intéressé par le premier, laissez un commentaire et je 'll Mettez à jour cela avec un exemple. Sinon, comme mentionné, il suffit d'utiliser le Mise à jour: forte > Je pose un exemple de code pour le "joli lien hypertexte" ci-dessous, que j'aime beaucoup mieux qu'une cellule de lien hypertexte standard parce que (a) il semble plus agréable, (b) il donne des commentaires survole et (c) que vous pouvez changer. le curseur si vous voulez (j'utilise une méthode utilitaire pour obtenir le curseur de la main native du système d'exploitation, qui a un aspect plus 3D que Winforms 'intégré). p> Note à la note non Les utilisateurs de DevExpress lisent ceci: strong> J'utilise presque une technique identique pour la norme quelques notes sur ce code: p> Je ne sais pas la mise en cache de la police La logique du curseur découle avec n'importe quelle autre logique de curseur que vous pourriez utiliser dans la grille (ce qui n'est pratiquement aucun dans presque tous les cas pour moi, il faut donc bien être bien). P> LI>
Si vous souhaitez avoir plus d'une "colonne de liaison", vous devez gérer un champ Pour mes propres applications Winforms, je dispose d'un fournisseur d'extension qui me permet de joindre ce comportement à un repositoritorittembuttonedit code> comme type d'éditeur.
repositoritoritembuttonedit code>. Vous pouvez modifier ses propriétés pour prendre la cellule entière si vous le souhaitez, puis rendre la colonne une taille fixe de sorte que le bouton ne soit pas étiré. P>
system.windows.forms.listview code>. Microsoft utilise ce motif de l'UI un peu dans Vista et Windows 7 et il est bon d'apprendre à faire, même si le résultat n'est pas un parfait em> réplique. P>
MyItem code> est le type de données que vous avez liée à la vue de la grille. Peut-être que c'est un
datarow code> ou peut-être qu'il s'agit d'un type personnalisé si la source de données est un
ilist
mycolors code> est une classe d'utilité qui définit un couple de champs de couleur statique code> code> de champs code> utilisés pour l'interface utilisateur. Vous pouvez remplacer les références à ceux-ci avec des couleurs codées dur si vous n'allez jamais faire cela sur une grille. P> li>
code>, bien que vous puissiez probablement, car il n'y en a probablement que deux. P> Li>
HoverColumn CODE> Etat en plus du
Hoverrowhandle code>, et change évidemment. ces comparaisons d'égalité à colonnes à rechercher plusieurs colonnes. P> li>
ul>
GridView code> ou
listview code> en lancant dans une liste de Nom de colonne / link text paires, mais ce code n'est qu'un peu trop long pour publier ici. L'exemple ci-dessus devrait vous aider à démarrer. P> p>
Merci pour l'offre, j'aimerais voir un exemple de lien hypertexte. Entre-temps, je vais utiliser le repositoritoriotembuttonedit code>.
@ calico-chat: Vous êtes ici, comme promis!
Merci beaucoup pour tous les efforts que vous avez mis dans cette réponse. J'aimerais pouvoir pouvoir upouver plus d'une fois!
Old Post, mais utile ... Conserver Notez que faire cliquer pour travailler sur un XtragridView, je dois mettre des optionsBehavior.editables = FALSE pour éviter l'éditeur In-Place de la GridView et cliquez sur Grid Works
Utilisez le REPOSITORITOTEMBUTTONEDIT CODE> et définissez le
TextEditStyle CODE> vers
HideTExteditor CODE>. P>
Vous pouvez utiliser RepositoryItemButtonedit: Sélectionnez votre colonne cible, dans "Propriétés" Cliquez sur "Columnedit" et sélectionnez "Nouveau", après que Sélectionnez "ButEdit". Cliquez sur votre grille et sélectionnez "Exécuter designers", sélectionnez "Référentiel d'éditeur en place" sur le groupe "Référentiel". Sélectionnez "RepositoryTemButtonedit1" (si vous n'avez pas changé de bouton Modifier le nom du composant) Sélectionnez l'onglet "Événement" et sélectionnez l'événement "Buttonprimé". Remplissez votre code dans cet événement. Si vous le souhaitez, masquez la partie éditeur de composant, sélectionnez Colonne cible, dans "Propriétés" Cliquez sur "Columnedit" Rechercher "TextEditStyle" et choisissez "HideTextEditortor". P>
Mais, une question! ?? Je veux ajouter une image dans mon bouton, quelqu'un a une idée? p>
Je posterais cela comme une nouvelle question.
Ceci peut maintenant être atteint à l'aide du contrôle RepositoireImyperLinedit. P>
Voir:
0 commentaires