none
BIBLIOTECA DE CLASSES RRS feed

  • Pergunta

  • Olá,

    Gostaria de saber se posso colocar um CONTROLE DE USUÁRIO dentro de uma Biblioteca de Classes.

    Em caso positivo, como referencia-la num WindowsForm.

    Obrigado,

    Jayme

    quinta-feira, 14 de novembro de 2013 10:49

Respostas

  • Agora eu entendi a sua pergunta:

    Então só confirmando tinha que aparecer simmmmmmmmmmmmmm. isso é fato

    Exemplo Construido por mim

    Perceba que eu criei uma App.Libraries e nela tem duas classes:

    1 - UcControl do Tipo UserControl

    namespace App.Libraries
    {
        public partial class UcControl : UserControl
        {
            public UcControl()
            {
                InitializeComponent();
            }
    
            private void UcControl_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    2 - NumericTextBox do tipo TextBox (faz uma herança na classe)

    namespace App.Libraries
    {
        public class NumericTextBox:TextBox
        {
            public NumericTextBox()
            {
            }
            protected override void CreateHandle()
            {
                base.CreateHandle();
            }
        }
    }

    Agora fiz a referencia da App.Libraries para dentro da App.Windows

    E ficou assim:

    namespace App.Windows
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void numericTextBox1_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void ucControl1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    Isso é para comprovar que criando um Libraries e fazendo classes ou componentes ou herança ou ... (C# é fantástico), você pode compartilhar em outros projetos ...



    Fulvio Cezar Canducci Dias

    quinta-feira, 14 de novembro de 2013 22:45
  • A questão da mesma solution não tem nada a ver! Existem Libraries por exemplo Mysql (DataProvider) é fora ! e se agrega certinho entendeu! é alguma coisa na sua solution!!! kkkk

    Pegue no meu github: https://github.com/diasfulvio/CamadaEFModelRepBll/tree/master/App.Windows


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr terça-feira, 19 de novembro de 2013 18:27
    sexta-feira, 15 de novembro de 2013 11:39

Todas as Respostas

  • Sim ... pode!

    é só você referenciar ela no projeto que você precisa utilizar!!!

    Exemplo de como referenciar clique com o botão direito em cima de References -> Add Reference -> Projects

    e indique o projeto que você deseja utilizar sua biblioteca !!!


    Fulvio Cezar Canducci Dias

    • Sugerido como Resposta Roberson Naves quinta-feira, 14 de novembro de 2013 14:01
    quinta-feira, 14 de novembro de 2013 13:52
  • Olá Fúlvio,

    Obrigado pela atenção.

    Fiz o que você sugeriu mas não funcionou:

    As CLASSES ficam visíveis no projeto que irei utiliza-las mas o CONTROLE DE USUÁRIO não.

    Jayme

    quinta-feira, 14 de novembro de 2013 18:24
  • Poderia colocar o que você fez porque o que eu te falei funciona agora como posso ter certeza que você fez o certo ???

    Bom é isso! nem tudo é simples !!! 


    Fulvio Cezar Canducci Dias

    quinta-feira, 14 de novembro de 2013 18:48
  • Vamos lá:

    Criei uma Biblioteca de Classes contendo:

    Classe Cliente

    Classe CNPJ

    etc...

    Criei também nesta biblioteca um Controle de Usuário:

    NumericTextBox

    Compilei, foi gerada a MinhaBiblio.DLL

    Referenciei no projeto conforme você sugeriu  e no código do projeto citei:

    using MinhaBiblio;

    As classes funcionam perfeitamente bem, mas o controle não aparece na Barra de Ferramentas.

    Obrigado,

    Jayme

    quinta-feira, 14 de novembro de 2013 19:10
  • Então o Controle de Usuário que você disse é um Form ? 

    ou é um UserControl?

    Poderia colocar o código de toda sua MinhaBiblio.dll?

    Está quase chegando a sua solução!!!


    Fulvio Cezar Canducci Dias

    quinta-feira, 14 de novembro de 2013 19:33
  • Na Biblioteca de Classes criei diversas classes semelhantes a esta:


    // CLASSE CLIENTE

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace MinhaBiblio
    {
        public class Cliente
        {
            #region Atributos

            public static string Clie_Codigo;
            public static string Clie_Nome;

            #endregion

            #region Construtores

            public Cliente()
            {
                Clie_Codigo = "";
                Clie_Nome = "";
            }

            #endregion

            #region Propriedades

            public string v_Clie_Codigo
            {
                set { Clie_Codigo = value; }
                get { return Clie_Codigo; }
            }
            public string v_Clie_Fantasia
            {
                set { Clie_Nome = value; }
                get { return Clie_Nome; }
            }

            #endregion
        }
    }

    Na mesma Bliblioteca criei um UserControl:

    // CONTROLE NuméricTextBox


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace MinhaBiblio
    {
        public partial class NumericTextBox : TextBox
        {
            public enum tipoValida
            {
                Duplo,
                Inteiro
            }
            private tipoValida _numerico;
            public tipoValida Tipo
            {
                get
                {
                    return _numerico;
                }
                set
                {
                    _numerico = value;
                }
            }
            //
            public enum casasDecimais : byte
            {
                _0 = 0,
                _1,
                _2,
                _3,
                _4,
                _5,
                _6,
                _7,
                _8,
                _9,
            }
            //
            private casasDecimais _casasDecimais;
            public casasDecimais CasasDecimais
            {
                get
                {
                    return _casasDecimais;
                }
                set
                {
                    _casasDecimais = value;
                }
            }
            //
            protected override void OnKeyDown(KeyEventArgs e)
            {
                base.OnKeyDown(e);

                if (_numerico == tipoValida.Inteiro)
                {
                    if (e.KeyCode == Keys.Subtract || e.KeyCode == Keys.OemMinus)
                    {
                        if (this.Text.Length > 0)
                        {
                            e.SuppressKeyPress = true;
                        }
                        else
                        {
                            e.SuppressKeyPress = false;
                        }
                    }
                    else if (e.KeyCode == Keys.NumPad0 || e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.NumPad2
                            || e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.NumPad5
                            || e.KeyCode == Keys.NumPad6 || e.KeyCode == Keys.NumPad7 || e.KeyCode == Keys.NumPad7
                            || e.KeyCode == Keys.NumPad8 || e.KeyCode == Keys.NumPad9 || e.KeyCode == Keys.D0
                            || e.KeyCode == Keys.D1 || e.KeyCode == Keys.D2 || e.KeyCode == Keys.D3 || e.KeyCode == Keys.D4
                            || e.KeyCode == Keys.D5 || e.KeyCode == Keys.D6 || e.KeyCode == Keys.D7 || e.KeyCode == Keys.D8
                            || e.KeyCode == Keys.D9 || e.KeyCode == Keys.Delete || e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return
                            || e.KeyCode == Keys.Back || e.KeyCode == Keys.Tab || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right
                            || e.KeyCode == Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.End || e.KeyCode == Keys.Home
                            || e.KeyCode == Keys.PageDown || e.KeyCode == Keys.PageUp)
                    {
                        e.SuppressKeyPress = false;
                    }
                    else
                    {
                        e.SuppressKeyPress = true;
                    }
                }
                else if (_numerico == tipoValida.Duplo)
                {
                    if (e.KeyCode == Keys.Subtract || e.KeyCode == Keys.OemMinus)
                    {
                        if (this.Text.Length > 0)
                        {
                            e.SuppressKeyPress = true;
                        }
                        else
                        {
                            e.SuppressKeyPress = false;
                        }
                    }
                    else if (e.KeyCode == Keys.Oemcomma || e.KeyCode == Keys.Decimal || e.KeyCode == Keys.OemPeriod)
                    {
                        if (this.Text.Length < 1)
                        {
                            this.Text = "";
                            this.Text = "0,";
                            e.SuppressKeyPress = true;
                            this.SelectionStart = this.Text.Length;
                        }
                        else
                        {
                            if (this.Text.Length == 1 && this.Text.Substring(0, 1) == "-")
                            {
                                this.Text = "";
                                this.Text = "-0,";
                                e.SuppressKeyPress = true;
                                this.SelectionStart = this.Text.Length;
                            }
                            else
                            {
                                int contador = 0;
                                int quantidade = 0;

                                while (contador < this.Text.Length)
                                {
                                    if (this.Text.Substring(contador, 1) == "," || this.Text.Substring(contador, 1) == ".")
                                    {
                                        quantidade++;
                                        break;
                                    }
                                    contador++;
                                }
                                if (quantidade > 0)
                                {
                                    e.SuppressKeyPress = true;
                                }
                                else
                                {
                                    e.SuppressKeyPress = false;
                                }
                            }
                        }
                    }
                    else if (e.KeyCode == Keys.NumPad0 || e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.NumPad2
                            || e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.NumPad5
                            || e.KeyCode == Keys.NumPad6 || e.KeyCode == Keys.NumPad7 || e.KeyCode == Keys.NumPad8
                            || e.KeyCode == Keys.NumPad9 || e.KeyCode == Keys.D0 || e.KeyCode == Keys.D1
                            || e.KeyCode == Keys.D2 || e.KeyCode == Keys.D3 || e.KeyCode == Keys.D4 || e.KeyCode == Keys.D5
                            || e.KeyCode == Keys.D6 || e.KeyCode == Keys.D7 || e.KeyCode == Keys.D8 || e.KeyCode == Keys.D9
                            || e.KeyCode == Keys.Delete || e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return || e.KeyCode == Keys.Back
                            || e.KeyCode == Keys.Tab || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Up
                            || e.KeyCode == Keys.Down || e.KeyCode == Keys.End || e.KeyCode == Keys.Home || e.KeyCode == Keys.PageDown
                            || e.KeyCode == Keys.PageUp || e.KeyCode == Keys.Oemcomma || e.KeyCode == Keys.Decimal || e.KeyCode == Keys.OemPeriod)
                    {
                        e.SuppressKeyPress = false;

                        if (e.KeyCode == Keys.NumPad0 || e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.NumPad2
                            || e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.NumPad5
                            || e.KeyCode == Keys.NumPad6 || e.KeyCode == Keys.NumPad7 || e.KeyCode == Keys.NumPad8
                            || e.KeyCode == Keys.NumPad9 || e.KeyCode == Keys.D0 || e.KeyCode == Keys.D1
                            || e.KeyCode == Keys.D2 || e.KeyCode == Keys.D3 || e.KeyCode == Keys.D4 || e.KeyCode == Keys.D5
                            || e.KeyCode == Keys.D6 || e.KeyCode == Keys.D7 || e.KeyCode == Keys.D8 || e.KeyCode == Keys.D9)
                        {
                            int _posicao = 0;
                            int _contador = 0;
                            while (_contador < this.Text.Length)
                            {
                                if (this.Text.Substring(_contador, 1) == "," || this.Text.Substring(_contador, 1) == ".")
                                {
                                    _posicao = _contador;
                                    break;
                                }
                                _contador++;
                            }
                            if (_posicao > 0)
                            {
                                int tamanho = 0;
                                tamanho = (this.Text.Length - _posicao);


                                if (tamanho > Convert.ToInt32(this._casasDecimais.ToString().Substring(1, 1)))
                                {
                                    e.SuppressKeyPress = true;
                                }
                            }
                        }
                    }
                    else
                    {
                        e.SuppressKeyPress = true;
                    }
                }
                else
                {
                    e.Handled = false;
                }
            }
            //
            protected override void OnEnter(EventArgs e)
            {
                base.OnLeave(e);
                {
                    if (this.Text.Length > 1)
                    {
                        string _numero = this.Text;
                        int _contador = _numero.Length - 1;
                        while (_contador > 0)
                        {
                            if (_numero.Substring(_contador, 1) == "0")
                            {
                                _numero = _numero.Substring(0, _contador);
                            }
                            else
                            {
                                break;
                            }
                            _contador--;
                        }
                        this.Text = _numero;
                    }
                    this.SelectionStart = this.Text.Length;
                }
            }
            //
            protected override void OnLeave(EventArgs e)
            {
                base.OnLeave(e);

                if (this.Text.Length != 0)
                {

                    if (this.CasasDecimais.ToString().Substring(1, 1) != "0")
                    {
                        int _casas = Convert.ToInt32(this.CasasDecimais.ToString().Substring(1, 1));
                        string _Formato = "N" + Convert.ToString(_casas);
                        double _Texto = Convert.ToDouble(this.Text);
                        this.Text = _Texto.ToString(_Formato);
                    }
                }
            }
            //
            protected override void OnKeyPress(KeyPressEventArgs e)
            {
                base.OnKeyPress(e);
                if (_numerico == tipoValida.Duplo)
                {
                    if (e.KeyChar == '.')
                    {
                        e.KeyChar = ',';
                    }
                    if (e.KeyChar == ',')
                    {
                        if (Convert.ToString(this._casasDecimais) == "_0")
                        {
                            e.KeyChar = Convert.ToChar(Keys.None);
                        }
                    }
                }
                else
                {
                    e.Handled = false;
                }
            }
            //
        }
    }

    A minha dúvida é esta, o controle deveria ou não aparecer na Barra de Ferramentas ?

    Se eu criar um projeto WindowsForm e criar o UserControl dentro do projeto ele estará presente na Barra de Ferramentas, mas só a REFERÊNCIA não aparece.

    Obrigado.

    quinta-feira, 14 de novembro de 2013 20:18
  • Agora eu entendi a sua pergunta:

    Então só confirmando tinha que aparecer simmmmmmmmmmmmmm. isso é fato

    Exemplo Construido por mim

    Perceba que eu criei uma App.Libraries e nela tem duas classes:

    1 - UcControl do Tipo UserControl

    namespace App.Libraries
    {
        public partial class UcControl : UserControl
        {
            public UcControl()
            {
                InitializeComponent();
            }
    
            private void UcControl_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    2 - NumericTextBox do tipo TextBox (faz uma herança na classe)

    namespace App.Libraries
    {
        public class NumericTextBox:TextBox
        {
            public NumericTextBox()
            {
            }
            protected override void CreateHandle()
            {
                base.CreateHandle();
            }
        }
    }

    Agora fiz a referencia da App.Libraries para dentro da App.Windows

    E ficou assim:

    namespace App.Windows
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void numericTextBox1_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void ucControl1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    Isso é para comprovar que criando um Libraries e fazendo classes ou componentes ou herança ou ... (C# é fantástico), você pode compartilhar em outros projetos ...



    Fulvio Cezar Canducci Dias

    quinta-feira, 14 de novembro de 2013 22:45
  • Fiz um teste com sua classe Funcionou que é uma blza!

    Fulvio Cezar Canducci Dias

    quinta-feira, 14 de novembro de 2013 22:52
  • Bom dia Fúlvio,

    Acho que você chegou lá. Mas ainda tenho dúvida:

    Dentro de uma mesma Solution (conforme você fez) funcionou direitinho, mas em outra Solution App.Windows mesmo referenciando a App.Libraries continua não aparecendo na Barra de Ferramentas.

    Por favor, você poderia mandar sua aplicação completa para meu e-mail ?

    Jayme@scatena.net.br

    Muito obrigado.

    sexta-feira, 15 de novembro de 2013 10:14
  • A questão da mesma solution não tem nada a ver! Existem Libraries por exemplo Mysql (DataProvider) é fora ! e se agrega certinho entendeu! é alguma coisa na sua solution!!! kkkk

    Pegue no meu github: https://github.com/diasfulvio/CamadaEFModelRepBll/tree/master/App.Windows


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr terça-feira, 19 de novembro de 2013 18:27
    sexta-feira, 15 de novembro de 2013 11:39
  • Olá Fulvio,

    Funcionou !!!!!!

    Muito obrigado.

    Jayme

    sexta-feira, 15 de novembro de 2013 22:54
  • Olá Fulvio,

    Funcionou !!!!!!

    Muito obrigado.

    Jayme

    Por nada, não esqueça dos créditos!!!

    Obrigado!


    Fulvio Cezar Canducci Dias

    sexta-feira, 15 de novembro de 2013 23:17