Usuário com melhor resposta
ContextMenuStrip Dinâmico no Listivew

Pergunta
-
Boa Tarde,
Tenho uma aplicação WinForm no Visual Studio 2005 e Windows XP.
Minha dúvida é a seguinte: Tenho um Listview onde coloco o ContextMenuStrip dinâmico, onde eu desabilito algumas opções desse menu quando não tenho item selecionado no listview e habilito quando tem itens selecionados. Fiz o seguinte código no Mouse Click:
Code Snippettry{
if (e.Button == MouseButtons.Right){
if (this.lvwCampos.SelectedIndices.Count != -1){
this.editarCampoToolStripMenuItem.Enabled = true; this.removerCampoToolStripMenuItem.Enabled = true;}
else{
this.editarCampoToolStripMenuItem.Enabled = false; this.removerCampoToolStripMenuItem.Enabled = false;}
}
Point p = new Point(e.X, e.Y);
this.cmsCampos.Show(this.lvwCampos, p); this.cmsCampos.Refresh();}
catch{ }
O problema é que esse evento só esta sendo chamado caso o click tenha sido feito em sobre um item selecionado. E não estou conseguindo fazer aparecer o ContextMenuStrip quando não tem item selecionado.
Muito obrigado por qualquer tentativa de ajuda.
Clayr Madeira.
Respostas
-
Boa tarde Clayr.
Bem, não entendi muito bem, mas vamos lá?
se você linkar a propriedade contextmenustrip do listview com seu contextmenustrip, provavelmente vai resolver o problema de somente quando estiver selecionado ele aparecer.
e no seu contextmenustripo, no evento Opening, vc coloca o seu fonte somente com essas linhas:
Code Snippet{
if (this.lvwCampos.SelectedIndices.Count != -1)
{
this.editarCampoToolStripMenuItem.Enabled = true;
this.removerCampoToolStripMenuItem.Enabled = true;
}
else
{
this.editarCampoToolStripMenuItem.Enabled = false; this.removerCampoToolStripMenuItem.Enabled = false;}
}
veja se funciona.
Espero ter ajudado.
t+
Todas as Respostas
-
Boa tarde Clayr.
Bem, não entendi muito bem, mas vamos lá?
se você linkar a propriedade contextmenustrip do listview com seu contextmenustrip, provavelmente vai resolver o problema de somente quando estiver selecionado ele aparecer.
e no seu contextmenustripo, no evento Opening, vc coloca o seu fonte somente com essas linhas:
Code Snippet{
if (this.lvwCampos.SelectedIndices.Count != -1)
{
this.editarCampoToolStripMenuItem.Enabled = true;
this.removerCampoToolStripMenuItem.Enabled = true;
}
else
{
this.editarCampoToolStripMenuItem.Enabled = false; this.removerCampoToolStripMenuItem.Enabled = false;}
}
veja se funciona.
Espero ter ajudado.
t+
-