Je sais que cela est une question de beaucoup il y a des lunes, mais je ne ai pas vraiment été en mesure de trouver une réponse simple avec le code ... Je sais SLaks ont fait genre de celui-ci out, mais je pense que d'autres là-bas ont besoin d'un échantillon de code ...
Je voulais savoir qui a appelé le menu contextuel entre une zone de texte riche ou une étiquette. La raison en est que je ne voulais qu'un seul menu contextuel et que le bouton de copie à l'intérieur de celui-ci était désactivé si l'appelant était la zone de texte riche sans rien sélectionné.
Heres mon code:
private void contextMenuStrip1_Opened(object sender, EventArgs e)
{
//get the context menu (it holds the caller)
ContextMenuStrip contextMenu = sender as ContextMenuStrip;
//get the callers name for testing
string controlName = contextMenu.SourceControl.Name;
//test if it is infact me rich text editor making the call.
if (controlName == "text_rchtxt")
{
//if I have nothing selected... I should not be able to copy
if (text_rchtxt.SelectedText == "")
copy_shrtct.Enabled = false;
}
else
{
//if I do have something selected or if its another control making the call, enable copying
copy_shrtct.Enabled = true;
}
}
si la source est un datagridview, comment puis-je dire à quelle ligne ou cellule? – Maslow