Usuário com melhor resposta
Captura de coordenada do MouseDown em sub-containers

Pergunta
-
private void Form1_Load(object sender, EventArgs e) { Center_Text(); ListViewItem testeItem = new ListViewItem(); testeItem.Text = "teste"; testeItem.ForeColor = SystemColors.WindowFrame; listView1.Items.Add(testeItem); foreach(Control x in this.Controls) { if(!(x is TextBox)) { x.MouseDown += new MouseEventHandler(CaptureMouse); } } } private void CaptureMouse(object sender, MouseEventArgs e) { label1.Text = e.Location.X.ToString() + ", " + e.Location.Y.ToString(); }
Utilizando do código acima, fui capaz de capturar vários pontos do meu Form (estou a usar WinForms). Acontece que, para organizar a interface, estou usando TableLayoutPanel + Panels dentro das colunas, e quando clico nos controles que estão dentro desses painéis (uma ListView, por exemplo), a coordenada do mouse não é capturada. Por que isso ocorre e como soluciono?
Ps.: por que não consigo postar imagens? Como verifico minha conta por aqui?
Respostas
-
@Mister
TableLayoutPanel, pode ser complexo as vezes de programar! no teu caso, voce vai ter de re -criar o codigo da seguinte form:
foreach(Control x in this.Controls) { if(!(x isTableLayoutPanel))
{
depois fazer um outro teste pra ver se existe txtbox or um outro control
so depois podes chamar este codigo--- x.MouseDown += new MouseEventHandler(CaptureMouse);
A flower cannot blossom without sunshine, and man cannot live without love.
- Sugerido como Resposta Eduardo xUni sábado, 31 de outubro de 2015 22:21
- Não Sugerido como Resposta Eduardo xUni sábado, 31 de outubro de 2015 22:22
- Marcado como Resposta Marcos SJ quinta-feira, 26 de novembro de 2015 16:48
Todas as Respostas
-
@Mister
TableLayoutPanel, pode ser complexo as vezes de programar! no teu caso, voce vai ter de re -criar o codigo da seguinte form:
foreach(Control x in this.Controls) { if(!(x isTableLayoutPanel))
{
depois fazer um outro teste pra ver se existe txtbox or um outro control
so depois podes chamar este codigo--- x.MouseDown += new MouseEventHandler(CaptureMouse);
A flower cannot blossom without sunshine, and man cannot live without love.
- Sugerido como Resposta Eduardo xUni sábado, 31 de outubro de 2015 22:21
- Não Sugerido como Resposta Eduardo xUni sábado, 31 de outubro de 2015 22:22
- Marcado como Resposta Marcos SJ quinta-feira, 26 de novembro de 2015 16:48
-
Boa tarde,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.