Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Iniciante Me dêem um caminho c#


fdefod

Pergunta

Olá pessoal, estou desenvolvendo um aplicação para impressão de ingressos.

Primeiro o cliente adiciona um label na tela e arrasta( este label seria a numeração do ingresso), gostaria de saber qual melhor componente para inserir este label e marxar a posição em que deve serimprimido. Outra pergunta é como saber qual foi o ultimo label clicado em c#?

Pessoal por favor espero que vocês me ajudem valeu abraços!!

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Oi é windows form. Tow querendo inserir varios label e colocar eventos neles dinamicamente. ou o cliente pode mover todos os label que estiverem na tela. Será que para este propósito é mehor usar outro componente já que os label não recebem foco??

Pessoal depois que eu insiro um label, não estou consegindo fazer com ele fique no evento, por exemplo se ele for clicado mudar a cor de fundo. E consequentemente todos label que forem sendo inseridos tb possuir o mesmo evento. Se alguém tiver algum pedaço de código que possa me auxiliar eu agradeço..

Link para o comentário
Compartilhar em outros sites

  • 0

Aqui está o código!

private void tsbtnAddNumero_Click(object sender, EventArgs e)
        {
            Label l = new Label();
            l.Text = s.Numero;
            l.MouseDown += new MouseEventHandler(mouseclicked);   
            l.MouseUp += new MouseEventHandler(mleaved);
            l.MouseMove += new MouseEventHandler(mmove);     //Assim não funciona o evneto! Quando clico e arrasto não acontece nada!
            InserirLabelNoRich(l);
        }

        private void InserirLabelNoRich(Label l)
        {
            IsMdiContainer = true;
            l.Font = new Font("Arial", 10);
            richTextBox1.Controls.Add(l);
            l.BorderStyle = BorderStyle.FixedSingle;
            l.Location = new Point(0, 0);
            l.Show();
            lista.Add(l);
            label = l;      //adicionando à uma variavel global
            this.label.MouseMove += new MouseEventHandler(mmove); //Assim ele move mas só o ultimo label adicionado. Quando insiro e tento mover o primeiro não funciona!
        }




//Aqui o codigo do evento!
 private void mleaved(object sender, MouseEventArgs e)
        {
           flag = false;
        }
    
        private void mouseclicked(object sender, MouseEventArgs e)
        {
            flag = true;
            ptInicial = e.Location;
        }

        private void mmove(object sender, MouseEventArgs e)
        {
          

            if (e.Button == MouseButtons.Left & flag == true)
            {
                label.Location = new Point(label.Left + (e.X - ptInicial.X),
                label.Top + (e.Y - ptInicial.Y));
                double px = label.Location.X * 0.264;
                double py = label.Location.Y * 0.264;
                px = Math.Round(px, 2);
                py = Math.Round(py, 2);
                itemXYToolStripMenuItem.Text = "Item X: " + px + " Y: " + py;
            }
        }

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só.. Não sei se vai corrigir o problema, mas eu acredito que está mexendo apenas o último porque você não está utilizando a referência ao label clicado que é passada como parâmetro para mmove.

Testa ai com algo tipo e vê se modifica algo:

private void mmove(object sender, MouseEventArgs e)
{
Label l = (Label)sender;
if (e.Button == MouseButtons.Left & flag == true)
{
l.Location = new Point(l.Left + (e.X - ptInicial.X),
l.Top + (e.Y - ptInicial.Y));
double px = l.Location.X * 0.264;
double py = l.Location.Y * 0.264;
px = Math.Round(px, 2);
py = Math.Round(py, 2);
itemXYToolStripMenuItem.Text = "Item X: " + px + " Y: " + py;
}
}
Agora, se eu fosse você, eu colocaria para conferir se o botão do clique foi o esquerdo no evento do clique, e não no evento do movimento. Do jeito que está agora, enquanto o mouse se move o script tem q ficar fazendo a conferência (inútil) se o botão é o esquerdo ou não. Como o movimento já começou, então com certeza o botão esquerdo foi utilizado.
private void mouseclicked(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
flag = true;
ptInicial = e.Location;
}
}

Assim, no mmove você usaria apenas if (flag == true)

Até

EDIT: Olha, eu tava relendo aqui. Esse meu segundo comentário só tem fundamento se você estiver fazendo algo drag-and-drop. Se não for, não faz diferença a maneira que for feita.

Editado por Lucas Phillip
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...