none
C# Attributes RRS feed

  • Pergunta

  • Galera, sei que em .NET existe .Attributes exemplo:

     txtCnpj.Attributes.Add("onkeydown", "return Formato_CNPJ(this, event);");

    e no c# win forms existe algo parecido ?

    Nao sei se me expressei muito bem caso tenham duvidas postem por favor.

    terça-feira, 19 de junho de 2012 20:56

Respostas

  • Olá,

    Tem como resolver sim!

    Entenda que no "ListBox.Item.Add(object)" o parametro object a ser adicionado pode ser qualquer objeto, nesse caso você precisa criar uma classe com uma estrutura de dados e adicioná-la no ListBox.

    	public class Dados
    	{
    		private string _arquivo;
    		private string _diretorio;
    
    		public string Arquivo
    		{
    			get { return this._arquivo; }
    			set { _arquivo = value; }
    		}
    		public string Diretorio
    		{
    			get { return this._diretorio; }
    			set { _diretorio = value; }
    		}
    		
    		public override string ToString()
    		{
    			return Arquivo.ToString();
    		}
    	}

    Repare que dei um override na ToString, assim quando você listar o objeto.ToString da sua ListBox, vai aparecer o nome do atributo que você escolher!

    Para preencher seu ListBox:

    			DirectoryInfo dir = new DirectoryInfo(textBox1.Text);
    			if (dir != null)
    			{
    				directory = textBox1.Text;
    			}
    
    			foreach (DirectoryInfo dirNomes in dir.GetDirectories())
    			{
    				foreach (FileInfo file in dirNomes.GetFiles())
    				{
    					Dados dado = new Dados();
    
    					dado.Arquivo = file.Name;
    					dado.Diretorio = dirNomes.Name;
    
    					listBox1.Items.Add(dado);
    				}
    			}

    Exibindo o conteúdo do ListBox ao selecionar um item:

    			Dados arquivo = new Dados();
    			arquivo = (Dados)listBox1.SelectedItem;
    
    			label1.Text = arquivo.Arquivo + " - " + arquivo.Diretorio;

    Se ajudou marque como resposta,
    Em caso de mais dúvidas poste aqui!

    Abç!




    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    • Marcado como Resposta Eduardo171 quarta-feira, 20 de junho de 2012 17:12
    quarta-feira, 20 de junho de 2012 14:02

Todas as Respostas

  • Aki esta a pagina k explica atributes: http://msdn.microsoft.com/en-us/library/sw480ze8(v=vs.80).aspx

    O Amor que Sinto por Ti, Apenas Deus e capaz de sentir e superar tal amor!

    terça-feira, 19 de junho de 2012 21:00
    Moderador
  • Não kra, deixa eu me explicar melhor.

             DirectoryInfo dir = new DirectoryInfo(textBox1.Text);
                if (dir != null)
                {
                    directory = textBox1.Text;
                }

                foreach (DirectoryInfo dirNomes in dir.GetDirectories())
                {
                    listBox1.Items.Add("Pasta: " + dirNomes.Name);
                    foreach (FileInfo file in dirNomes.GetFiles())
                    {
                        listBox1.Items.Add("Arquivo: " + file.Name);
                    }

                    listBox1.Items.Add(" ");
                }

    Preciso saber a pasta que o arquivo seleciona no listbox está.

    terça-feira, 19 de junho de 2012 23:02
  • Você quer saber o que ?
    seja mais detalhista que eu verei se posso ajudar.

    Flavio Silva (Sko.Lex) - http://www.youtube.com/user/MrSkoLex

    quarta-feira, 20 de junho de 2012 00:48
  • Preciso saber a pasta que o arquivo selecionado no listbox está.
    quarta-feira, 20 de junho de 2012 12:36
  • Olá,

    Tem como resolver sim!

    Entenda que no "ListBox.Item.Add(object)" o parametro object a ser adicionado pode ser qualquer objeto, nesse caso você precisa criar uma classe com uma estrutura de dados e adicioná-la no ListBox.

    	public class Dados
    	{
    		private string _arquivo;
    		private string _diretorio;
    
    		public string Arquivo
    		{
    			get { return this._arquivo; }
    			set { _arquivo = value; }
    		}
    		public string Diretorio
    		{
    			get { return this._diretorio; }
    			set { _diretorio = value; }
    		}
    		
    		public override string ToString()
    		{
    			return Arquivo.ToString();
    		}
    	}

    Repare que dei um override na ToString, assim quando você listar o objeto.ToString da sua ListBox, vai aparecer o nome do atributo que você escolher!

    Para preencher seu ListBox:

    			DirectoryInfo dir = new DirectoryInfo(textBox1.Text);
    			if (dir != null)
    			{
    				directory = textBox1.Text;
    			}
    
    			foreach (DirectoryInfo dirNomes in dir.GetDirectories())
    			{
    				foreach (FileInfo file in dirNomes.GetFiles())
    				{
    					Dados dado = new Dados();
    
    					dado.Arquivo = file.Name;
    					dado.Diretorio = dirNomes.Name;
    
    					listBox1.Items.Add(dado);
    				}
    			}

    Exibindo o conteúdo do ListBox ao selecionar um item:

    			Dados arquivo = new Dados();
    			arquivo = (Dados)listBox1.SelectedItem;
    
    			label1.Text = arquivo.Arquivo + " - " + arquivo.Diretorio;

    Se ajudou marque como resposta,
    Em caso de mais dúvidas poste aqui!

    Abç!




    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    • Marcado como Resposta Eduardo171 quarta-feira, 20 de junho de 2012 17:12
    quarta-feira, 20 de junho de 2012 14:02
  • Valeu amigo, mas ainda não solucionou. No listbox eu preciso exibir somente o nome do arquivo e no evento de um botão preciso recuperar o diretório do arquivo selecionado no listbox.


    • Editado Eduardo171 quarta-feira, 20 de junho de 2012 16:06
    quarta-feira, 20 de junho de 2012 14:49
  • Meu amigo,

    Mas é justamente isso que eu lhe entreguei feitinho!

    No ListBox só esta sendo exibido o nome do arquivo, você implementou para testar?
    Pode ir na certeza, acabei de fazer o teste aqui!

    E ao clicar no botão você recupera a informação adicional que seria o nome do diretório,

                    private void button1_Click(object sender, System.EventArgs e)
    		{
    			Dados arquivo = new Dados();
    			arquivo = (Dados)listBox1.SelectedItem;
    
    			// Aqui você tem o nome do arquivo.
    			arquivo.Arquivo;
    			// Aqui você tem o nome do diretório:
    			arquivo.Diretorio;
    
    			// Qualquer informação que você criar na classe Dados pode ser recuperada na seleção do Item.
    		}
    Faz um teste ai!
    Não esqueça de retornar com o resultado e marcar a resposta se por acaso funcionar.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    quarta-feira, 20 de junho de 2012 16:48
  • Marcado como resposta, obrigado e desculpa pela burrice e preguiça.
    quarta-feira, 20 de junho de 2012 17:12