Arquivo da categoria ‘C#’

Visual – PictureBox – C#

Publicado: 10 de abril de 2014 em C#

Uma imagem digital é a representação de uma imagem bidimensional usando números binários codificados de modo a permitir seu armazenamento, transferência, impressão ou reprodução, e seu processamento por meios eletrônicos. Há dois tipos fundamentais de imagem digital. Uma é do tipo rastreio (raster) e outra do tipo vetorial. Uma imagem digital do tipo raster, ou bitmap, ou ainda matricial, é aquela que em algum momento apresenta uma correspondência bit-a-bit entre os pontos da imagem raster e os pontos da imagem reproduzida na tela de um monitor.

A imagem vetorial não é reproduzida necessariamente por aproximação de pontos, antes era destinada a ser reproduzida por plotters de traços que reproduziam a imagem por deslocamento de canetas-tinteiro.

Tipicamente, as imagens raster são imagens fotográficas, e as imagens vetoriais são desenhos técnicos de engenharia. Os quadrinhos ilustrados se assemelham em qualidade a imagens raster, mas são impressos em plotters que passaram a imprimir à maneira das impressoras comuns por jato de tinta.

picturebox

PictureBox

PictureBox

Representa um controle de caixa de imagens do Windows para exibir uma imagem.

Exemplo:

Neste exemplo carregamos uma imagem cujo sua fonte é uma Url da internet e  a exibimos em um componente de imagem.

C#

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

namespace Imagem
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo;
        PictureBox imagem;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Muda propriedades do formulario
            this.Text = "DA - Imagem";
            this.Size = new Size(330, 290);

            // Cria componentes
            rotulo = new Label();
            imagem = new PictureBox();

            // Adiciona texto
            rotulo.Text = "Imagem - Picture";
            rotulo.TextAlign = ContentAlignment.TopCenter;

            // Adiciona tamanho aos componentes
            rotulo.Size = new Size(300, 20);
            imagem.Size = new Size(275, 183); 

            // Posiciona os componentes
            rotulo.Location = new Point(10, 20);
            imagem.Location = new Point(20, 40);

            // Lê e centraliza imagem
            imagem.ImageLocation = "https://desenvolvimentoaberto.org/wp-content/uploads/2014/04/images.jpg";
            imagem.SizeMode = PictureBoxSizeMode.CenterImage;

            // Adiciona componentes ao formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(imagem);

        }
    }
}

Uma barra de progresso é um componente de uma interface gráfica de usuário usado para visualizar a progressão de uma operação de computador estendida, como um download, transferência de arquivos, ou de instalação. Às vezes, o gráfico é acompanhada por uma representação textual do progresso em um formato por cento.

ProgressBar

Representa um controle de barra de progresso do Windows.

Timer

Implementa um timer que gera um evento em intervalos definidos pelo usuário. Desta vez, é otimizado para uso em aplicações Windows Forms e deve ser usado em uma janela.

BackgroundWorker

Executa uma operação em um segmento separado.

ProgressChangedEventHandler

Representa o método que manipulará o evento ProgressChanged da classe BackgroundWorker. Esta classe não pode ser herdada.

Processando Menssagens

Imagine uma barra de progresso que por padrão atinge um valor de 0 à 100, a principio podemos incrementar este valor no evento do clique do botão, porem a GUI sozinha não conseguirá atualizar os frames do andamento do status da barra progresso porque esta ocupada processando o contador do incremento, deste modo podemos ver o progresso vazio(0%) quando iniciar e cheio(100%) quando o contador chegar ao final, entretanto não poderemos ver o andamento desta porcentagem.  Para que possamos ver o andamento precisamos trabalhar os processos simultaneamente, em algumas linguagens de programação como o Delphi por exemplo temos o comando Application.ProcessMessages que executa este trabalho para nós. O C# possui uma classe chamada BackgroundWorker e podemos usa-la para executar um trabalho equivalente ao comando do Delphi para processar mensagens.

progressbar

ProgressBar – BackGroundWorker

 

Exemplo:

Neste exemplo usamos um contador e um temporizador para simular uma tarefa e usamos a classe BackgroundWorker para processar o andamento da tarefa.

C#

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

namespace barraprogresso
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo;
        ProgressBar progresso;
        Button botao;
        Timer tempo = new Timer();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Muda propriedades do formulario
            this.Text = "DA - Progress Bar";
            this.Size = new Size(240, 150);

            // Cria componentes
            rotulo = new Label();
            progresso = new ProgressBar();
            botao = new Button();

            // Adiciona texto
            rotulo.Text = "Progress Bar";
            botao.Text = "Ok";

            // Adiciona tamanho
            rotulo.Size = new Size(200, 20);
            progresso.Size = new Size(200, 20);

            // Adiciona posição
            rotulo.Location = new Point(12, 20);
            progresso.Location = new Point(12, 40);
            botao.Location = new Point(70, 70);

            // Alinha componenente
            rotulo.TextAlign = ContentAlignment.MiddleCenter;

            // Cria evento do botão
            botao.Click += new System.EventHandler(this.botao_Click);

            // Cria processo de background
            BackgroundWorker backgroundWorker = new BackgroundWorker();

            // Cria evento de progresso
            backgroundWorker.ProgressChanged +=
                new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);

            // Adiciona componentes ao formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(progresso);
            this.Controls.Add(botao);
        }

        // Cria um temporizador
        private void temporizador()
        {
            tempo.Interval = 250;
            tempo.Tick += new EventHandler(andamento);
            tempo.Start();

        }

        // Incrementa a barra de progresso baseado no temporizador
        private void andamento(object sender, EventArgs e)
        {
            progresso.Increment(1);

            if (progresso.Value == progresso.Maximum)
            {
                tempo.Stop();
            }
        }

        // Processa menssagens de progresso
        private void backgroundWorker_ProgressChanged(object sender,
           ProgressChangedEventArgs e)
        {
            progresso.Value = e.ProgressPercentage;
        }

        // Evento de clique do botão
        private void botao_Click(object sender, EventArgs e)
        {
            progresso.Value = 0;
            progresso.Maximum = 100;
            progresso.Step = 1;
            temporizador();
        }
    }
}

Em interfaces gráficas de usuário (GUI), uma interface tabulada  ou um Tab Control  é um widget que permite a interação de vários documentos ou painéis para ser contido dentro de uma única janela, usando guias como um widget de navegação para alternar entre conjuntos de painéis.

TabControl

Gerencia um conjunto relacionado de páginas de guia.

TabPage

Representa uma página única guia em um TabControl.

SelectedIndex

Ocorre quando houver uma mudança na propriedade do índice de uma guia.

Exemplo:

Neste exemplo criamos um painel tabulado com 3 guias onde na primeira e na segunda guia o usuário entrará com um numero inteiro e na terceira guia sobre o evento SelectedIndex efetuaremos a soma dos números escolhidos.

C#

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

namespace tabControl_cs
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo1;
        Label rotulo2;
        Label rotulo3;

        TabControl abas;

        TabPage painel1;
        TabPage painel2;
        TabPage painel3;

        TextBox numero1;
        TextBox numero2;

        Label total;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Altera propriedades do formulario
            this.Text = "DA- Tab Control";
            this.Size = new Size(250, 200);

            // Cria componentes
            rotulo1 = new Label();
            rotulo2 = new Label();
            rotulo3 = new Label();
            
            total = new Label();

            numero1 = new TextBox();
            numero2 = new TextBox();

            painel1 = new TabPage();
            painel2 = new TabPage();
            painel3 = new TabPage();

            abas = new TabControl();

            // Adiciona propriedades aos paineis
            painel1.TabIndex = 0;
            painel1.Text = "Numero 1";
            painel1.Size = new Size(260, 215);

            painel2.TabIndex = 1;
            painel2.Text = "Numero 2";
            painel2.Size = new Size(260, 215);

            painel3.TabIndex = 2;
            painel3.Text = "Total";
            painel3.Size = new Size(260, 215);

            // Adiciona texto aos componentes
            rotulo1.Text = "Escolha o primero numero inteiro:";
            rotulo2.Text = "Escolha o segundo numero inteiro:";
            rotulo3.Text = "Total da soma:";
            total.Text = "0";

            // Adiciona tamanho aos componentes
            rotulo1.Size = new Size(230, 20);
            rotulo2.Size = new Size(230, 20);
            rotulo3.Size = new Size(230, 20);

            // Posiciona componentes
            abas.Location = new Point(12, 20);
            
            rotulo1.Location = new Point(12,20);
            numero1.Location = new Point(12, 40);

            rotulo2.Location = new Point(12, 20);
            numero2.Location = new Point(12, 40);

            rotulo3.Location = new Point(12, 20);
            total.Location = new Point(12, 40);

            // Adiciona componentes aos paineis
            painel1.Controls.Add(rotulo1);
            painel1.Controls.Add(numero1);

            painel2.Controls.Add(rotulo2);
            painel2.Controls.Add(numero2);

            painel3.Controls.Add(rotulo3);
            painel3.Controls.Add(total);
                        
            // Adiciona paineis ao controle de guias
            abas.Controls.Add(painel1);
            abas.Controls.Add(painel2);
            abas.Controls.Add(painel3);

            // Cria evento na mudança de guias
            abas.SelectedIndexChanged += new System.EventHandler(this.abas_SelectedIndexChanged);

            // Adiciona Guias ao formulario
            this.Controls.Add(abas);
            
        }

        private void abas_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Verifica mudança de guias
            if (abas.SelectedIndex == 2)
            {
                // Efetua calculo
                int soma = Convert.ToInt32(numero1.Text) + Convert.ToInt32(numero2.Text);
                total.Text = Convert.ToString(soma);
            }
        }
    }
}

Visual – RichTextBox – Font- ScrollBars C#

Publicado: 4 de abril de 2014 em C#

Uma caixa de texto, campo de texto ou caixa de entrada de texto é uma espécie de ferramenta utilizada na construção de uma interface gráfica de usuário (GUI). A finalidade de um caixa de texto é o de permitir ao utilizador inserir informações de texto de entrada a ser utilizado pelo programa. Diretrizes de interface do usuário recomendam uma caixa com uma única linha de texto quando é necessária apenas uma linha de entrada, e uma caixa de texto de várias linhas somente se for necessária mais de uma linha de entrada. Caixas de texto não editáveis ​​pode servir ao propósito de simplesmente exibir texto.

RichTextoBox

Representa um controle de caixa de texto do Windows no formato rico. O Rich Text Format ou Formato Rico de Texto, é um formato de arquivo de documento desenvolvido e de propriedade da Microsoft desde 1987 para intercâmbio de documentos entre diversas plataformas, preferencialmente em Wordpad. A maioria dos processadores de texto são capazes de ler e escrever documentos RTF. Ao contrário da maioria dos formatos de processamento de textos, RTF possui um formato legível que tecnicamente em computação se enquadra no conceito humanreadable.

Exemplo 

Neste exemplo criamos um programa com uma área de texto onde se pode editar diretamente o texto ou inserir linhas no texto através de uma caixa de texto simples e um botão.

C#

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

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        // Declara Componentes
        Label rotulo;
        RichTextBox area;
        TextBox texto;
        Button botao;

        // Declara variavel
        string conteudo = "Escreva um texto dentro da caixa de texto. \n" +
                           "Você também pode adicionar novas linhas nesta caixa" +
                            "escrevendo no editor e clicando no botão\n";


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Adiciona propriedade ao formulario
            this.Text = "Desenvolvimento Aberto";

            // Cria componentes
            rotulo = new Label();
            area = new RichTextBox();
            texto = new TextBox();
            botao = new Button();

            // Adiciona propriedades aos componentes
            rotulo.Text = "Insira um texto na caixa:";
            area.Text = conteudo;
            botao.Text = "Ok";

            // Escolhe fonte e estilo do texto
            area.Font = new Font(FontFamily.GenericSansSerif, 10.0F, FontStyle.Italic);

            // Adiciona barras de rolagem
            area.ScrollBars =  RichTextBoxScrollBars.Vertical;

            // Adiciona tamanho aos componentes
            rotulo.Size = new Size(300, 20);
            area.Size = new Size(300, 150);
            texto.Size = new Size(300, 20);
            this.Size = new Size(350,350);

            // Seleciona posição dos componentes
            rotulo.Location = new Point(12, 20);
            area.Location = new Point(12, 45);
            texto.Location = new Point(12, 210);
            botao.Location = new Point(12, 240);

            // Cria evento do botão
            botao.Click += new System.EventHandler(this.botao_Click);

            // Adiciona componentes ao formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(area);
            this.Controls.Add(texto);
            this.Controls.Add(botao);
                        
        }

        private void botao_Click(object sender, EventArgs e)
        {
            // Adiciona texto na caixa de texto
            area.AppendText(texto.Text + "\n");
        }
               
    }
}

Em C# para usar um campo para senhas basta usar um TextBox padrão, alterando sua propriedade PasswordChar. Quando a caixa de texto está no modo de senha porque PasswordChar, UseSystemPasswordChar ou se ReadOnly for verdadeiro, o TextBox está no modo restrito. Neste modo, o ImeMode está desativado, mas o ImeMode atual é armazenado em cache para que ele possa ser restaurado se o TextBox nunca se tornar irrestrito.

ImeMode

Siginifica Input Method Editor, o modo permite aos usuários inserir caracteres e símbolos complexos, tais como mostrar caracteres “*”, usando um teclado padrão.

MessageBox

Exibe uma caixa de mensagem que pode conter texto, botões e símbolos que informam e instruem o usuário.

Aspas Simples e Aspas Duplas

Em algumas linguagens de programação usa-se aspas simples para escrever textos literais para uma variável, outras linguagens usam aspas duplas. Em algumas linguagens modernas usa-se ambos os tipos de aspas. Em C# aspas duplas significam caracteres literais no formato String, aspas simples significam caracteres literais no formato Char. No exemplo abaixo o caractere de senha precisa ser do tipo Char, tente colocar os caracteres em aspas duplas e verá o erro: String e Char não são tipos compatíveis, aspas simples transformam os literais em tipos Char suprimindo o erro do compilador.

password

Senha

 

Exemplo:

Neste exemplos usamos uma caixa de texto com sua propriedade de senha ativada e exibimos mensagens ao usuário de acordo com o resultado de validação.

C#

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

namespace senha
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo;
        TextBox senha;
        Button botao;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {

            // Cria componentes
            rotulo = new Label();
            senha = new TextBox();
            botao = new Button();

            // Adiciona Componentes
            this.Text = "DA - Password";
            rotulo.Text= "Digite uma senha de 8 caracteres";
            botao.Text="Ok";

            // Adiciona tamanho dos componentes
            rotulo.Size = new Size(300, 20);
            this.Size = new Size(250, 150);

            // Adiciona posição dos componentes
            rotulo.Location = new Point(15, 20);
            senha.Location = new Point(15, 45);
            botao.Location = new Point(15, 70);

            // Adiciona componente no formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(senha);
            this.Controls.Add(botao);

            // Cria evento do botão
            botao.Click += new System.EventHandler(this.botao_Click);

            // Altera propriedades para usar senhas
            senha.MaxLength = 8;
            senha.PasswordChar = '*';

        }

        private void botao_Click(object sender, EventArgs e)
        {
            // Exibe menssagens
            if (verificaSenha(senha.Text))
            {
                MessageBox.Show("A Senha está correta!", "Menssagem",
                                 MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

            }
            else
            {
                MessageBox.Show("A Senha está incorreta!", "Menssagem",
                                 MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
            }
        }

        public Boolean verificaSenha(string  senha)
        {
            // Verifica Senha
            Boolean correto = true;

            // Retorna senha de alguma fonte
            string rsenha = "daaberto";

            // Verifica tamanho da senha
            if (senha.Length != rsenha.Length)
            {
                correto = false;
            }
            else
            {
                // Verifica senha
                if (senha != rsenha)
                {
                    correto = false;
                }
            }

            return correto;
        }

    }
}

PopUpMenu

Um menu de contexto ou um menu pop-up é um menu em uma interface gráfica do usuário (GUI) que aparece em cima de interação do usuário, como uma operação de clique com o botão direito do mouse. Um menu de contexto oferece um conjunto limitado de opções que estão disponíveis no estado atual, ou contexto, do sistema operacional ou aplicativo. Normalmente, as opções disponíveis são as ações relacionadas com o objeto selecionado.

Os menus de contexto foram introduzidos no ambiente Smalltalk do computador Xerox Alto, onde eram chamados menus pop-up. O sistema operacional NEXTSTEP desenvolveu a ideia, incorporando a funcionalidade em que o botão do meio ou o da direita traziam o menu principal na posição do mouse, eliminando a necessidade de mover o ponteiro por toda a tela. Esse menu principal era vertical e mudava de acordo com o texto da operação do sistema.

ContextMenu

Representa um menu de atalho. Embora ContextMenuStrip substitui e adiciona funcionalidade para o ContextMenu  para controle de versões anteriores, ContextMenu é mantido para compatibilidade com versões anteriores e o uso futuro, se você escolher.

MouseUp

É um evento que ocorre quando o ponteiro do mouse está sobre o controle e um botão do mouse é liberado.

MouseButtons

Especifica constantes que definem qual botão do mouse foi pressionado.

Exemplo:

Neste exemplo criamos um menu de contexto e o associamos a um formulário e usamos suas constantes e eventos para manipular suas funcionalidades.

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

namespace Popup
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label titulo;
        Label rodape;
        ContextMenu pMenu;
        
        // Declara variaveis
        string acao = "Você clicou no: ";
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Cria componentes
            titulo = new Label();
            rodape = new Label();

            Form1.ActiveForm.Text = "Desenvolvimento Aberto - PopUpMenu";

            titulo.Text = "Clique com o botão direito no formulario";
            rodape.Text = acao;

            // Muda tamanho dos componentes
            titulo.Size = new Size(300, 20);
            rodape.Size = new Size(300, 20);

            // Posiciona componentes
            titulo.Location = new Point(5, 20);
            rodape.Location = new Point(5, 230);

            // Cria menu popup
            pMenu = new ContextMenu();

            // Cria evento do mouse
            this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);

            // Cria eventos do menu
            pMenu.MenuItems.Add("Item 1", new System.EventHandler(this.item1_clicked));
            pMenu.MenuItems.Add("item 2", new System.EventHandler(this.item2_clicked));
            pMenu.MenuItems.Add("-");
            pMenu.MenuItems.Add("item 3", new System.EventHandler(this.item3_clicked));

            // Adiciona componentes no formulario
            Form1.ActiveForm.Controls.Add(titulo);
            Form1.ActiveForm.Controls.Add(rodape);

            // Referencia popupmenu ao formulario
            this.ContextMenu = pMenu;


        }

        // Eventos dos itens do menu
       private void item1_clicked(object sender, EventArgs e)
        {
            rodape.Text = acao + "Item 1";
        }
        private void item2_clicked(object sender, EventArgs e)
        {
            rodape.Text = acao + "Item 2";
        }

        private void item3_clicked(object sender, EventArgs e)
        {
            rodape.Text = acao + "Item 3";
        }

        // Evento do mouse
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                Form1.ActiveForm.ContextMenu.Show(Form1.ActiveForm, new Point(e.X, e.Y));
            }
        }
                
    }
}

Em computação e telecomunicações, um menu é uma lista de opções ou comandos apresentados a um operador por um computador ou sistema de comunicações . Os menus são, por vezes, hierarquicamente organizado, permitindo uma navegação através de diferentes níveis da estrutura do menu.  A seleção de um item do menu com uma seta irá expandi-lo, mostrando um segundo menu (o sub-menu) com opções relacionadas com a entrada selecionada. É possível adicionar outros componentes ao menu como ícones de imagem, um componente de botões de radio e até mesmos botões de cheque.

MenuStrip

Fornece um sistema de menus para um formulário.

ToolStripMenuItem

Representa uma opção selecionável exibida em um MenuStrip . Embora ToolStripMenuItem substitui e adiciona funcionalidade para o controle MenuItem de versões anteriores, MenuItem é mantido para compatibilidade com versões anteriores e o uso futuro, se você escolher.

ToolStripSeparator

Representa uma linha usada para agrupar itens de um ToolStrip ou os itens drop-down de um MenuStrip ou ContextMenuStrip ou outro controle ToolStripDropDown.

Exemplo:

Neste exemplo criamos um menu, seus sub-menus e eventos.

C#

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

namespace CriaMenu
{
    public partial class Form1 : Form
    {
        // Decllara componentes
        Label texto;

        // Declara variaveis
        string msg = "Você escolheu o item: ";
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Adiciona valores as propriedades dos componentes
            texto = new Label();
            texto.Text = msg;
            texto.Size = new Size(300, 20);
            texto.Location = new Point(5,150);

            Form1.ActiveForm.Text = "Strip Menu";

            // Cria barra de Menu
            MenuStrip menu = new MenuStrip();

            // Cria menu
            ToolStripMenuItem itens1 = new ToolStripMenuItem("Menu 1");
            ToolStripMenuItem itens2 = new ToolStripMenuItem("Menu 2");

            // Cria sub-menu
            ToolStripMenuItem subitens1 = new ToolStripMenuItem("Item 3 - Sub-Menu 1");

            // Cria itens do menu
            ToolStripMenuItem m1item1 = new ToolStripMenuItem("Item 1", null, new EventHandler(clique1_m1));
            ToolStripMenuItem m1item2 = new ToolStripMenuItem("Item 2", null, new EventHandler(clique2_m1));
            ToolStripMenuItem m1item3 = new ToolStripMenuItem("Sub Item 3", null, new EventHandler(clique3_m1));
            ToolStripMenuItem m1item4 = new ToolStripMenuItem("Item 4", null, new EventHandler(clique4_m1));

            ToolStripMenuItem m2item1 = new ToolStripMenuItem("Item 1", null, new EventHandler(clique1_m2));

            // Adiciona itens ao menu
            itens1.DropDownItems.Add(m1item1);
            itens1.DropDownItems.Add(m1item2);
            itens1.DropDownItems.Add(subitens1);

            // Adiciona sub-menu
            subitens1.DropDownItems.Add(m1item3);

            // Adiciona separador
            itens1.DropDownItems.Add(new ToolStripSeparator());

            // Adiciona itens ao menu
            itens1.DropDownItems.Add(m1item4);
            itens2.DropDownItems.Add(m2item1);

            // Adiciona itens a barra de menu
            menu.Items.Add(itens1);
            menu.Items.Add(itens2);

            // Adiciona componentes ao formulario
            Form1.ActiveForm.Controls.Add(menu);
            Form1.ActiveForm.Controls.Add(texto);

        }

        // Cria eventos do menu
        private void clique1_m2(object sender, EventArgs e)
        {
            texto.Text = msg + "Menu 2, item 1";
        }

        private void clique1_m1(object sender, EventArgs e)
        {
            texto.Text = msg + "Menu 1, item 1";
        }

        private void clique2_m1(object sender, EventArgs e)
        {
            texto.Text = msg + "Menu 1, item 2";
        }

        private void clique3_m1(object sender, EventArgs e)
        {
            texto.Text = msg + "Menu 1, item3 - Sub-item 1";
        }

        private void clique4_m1(object sender, EventArgs e)
        {
            texto.Text = msg + "Menu 1, item 4";
        }

    }
}

Visual – TrackBar, TickStyle – C#

Publicado: 23 de março de 2014 em C#

TrackBar

Um controle deslizante, também conhecido como Slider, é um objeto de interface gráfica (GUI) com o qual o usuário pode definir um valor movendo um indicador, geralmente de uma forma horizontal. Em alguns casos, o usuário também pode clicar em um ponto no controle deslizante para alterar a configuração.

TickStyle

Especifica a localização das marcas de escala em um controle TrackBar.

Exemplo:

Neste exemplo criamos um TrackBar dinamicamente.

C#

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

namespace TBar
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label titulo;
        Label valor;
        TrackBar slider;
        Button botao;

        // Declara variaveis
        String mostraValor = "Valor escolhido é: ";

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Muda propriedades do formulario
            Form1.ActiveForm.Text = "TrackBar";
            Form1.ActiveForm.Size = new Size(250, 200);

            // Cria componentes
            titulo = new Label();
            valor = new Label();
            slider = new TrackBar();
            botao = new Button();

            // Adiciona propriedades
            titulo.Text = "Desenvolvimento Aberto - TrackBar";
            valor.Text = mostraValor;
            botao.Text = "Ok";

            slider.Maximum = 50;
            slider.Minimum = 1;
            slider.Value = 25;
            slider.TickStyle = TickStyle.BottomRight;

            titulo.Size = new Size(300, 20);
            valor.Size = new Size(300, 20);

            titulo.Location = new Point(5, 10);
            valor.Location = new Point(5, 30);
            slider.Location = new Point(5, 70);
            botao.Location = new Point(5, 120);

            // Cria evento para o botão
            botao.Click += new System.EventHandler(this.botao_Click);

            // Adiciona eventos no formulario
            Form1.ActiveForm.Controls.Add(titulo);
            Form1.ActiveForm.Controls.Add(valor);
            Form1.ActiveForm.Controls.Add(slider);
            Form1.ActiveForm.Controls.Add(botao);
        }

        private void botao_Click(object sender, EventArgs e)
        {
            // Mostra valor do trackbar
            valor.Text = mostraValor + Convert.ToString(slider.Value);
        }
    }
}

Visual – SpinBox, NumericUpDown, DomainUpDown – C#

Publicado: 22 de março de 2014 em C#

Em computação, um SpinBox é um elemento de interface gráfica  que permite aumentar ou diminuir um valor, geralmente, de um parâmetro numérico (por exemplo, tamanho ou data) de um objeto quando o usuário pressiona os botões do SpinBox . O SpinBox normalmente é  usado em conjunto com caixa de texto que permitem inserir ou editar dados diretamente. Dependendo do gerenciador de janela ou aplicação em uso, existem muitos estilos de apresentação gráfica de SpinBox.

NumericUpDown

Representa um Windows SpinBox, também conhecido como um controle de cima para baixo, que exibe valores numéricos.

DomainUpDown

Representa um Windows SpinBox, também conhecido como um controle de cima para baixo que exibe valores de cadeia de texto.

Exemplo:

Neste exemplo criamos dois SpinBox, um para valores numéricos e outro que suporta Arrays.

C#

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

namespace Spinner
{
    public partial class Form1 : Form
    {
        // Declara Componentes
        Label titulo;
        Label texto;
        Label numero;
        Label lista;
        NumericUpDown spinner1;
        DomainUpDown spinner2;
        Button botao;

        String[] tEstacao = { "Primavera", "Verão", "Outono", "Inverno" };

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Cria Componentes
            titulo = new Label();
            texto = new Label();
            numero = new Label();
            lista = new Label();
            botao = new Button();

            spinner1 = new NumericUpDown();
            spinner2 = new DomainUpDown();

            // Adiciona valores as propriedades dos componentes
            spinner1.Value = 1;
            spinner1.Minimum = 0;
            spinner1.Maximum = 10;
            spinner1.Increment = 1;

            // Adiciona Array
            spinner2.Items.AddRange(tEstacao);

            titulo.Text = "Desenvolvoimento Aberto - NumericUPDown";
            texto.Text = "Texto:";
            numero.Text = "Incio= 1, min= 0, max= 10, alimeta= 1";
            lista.Text = "Lista de estações do ano";
            botao.Text = "Ok";

            // Tamanho dos componentes
            titulo.Size = new Size(300, 20);
            texto.Size = new Size(300, 20);
            numero.Size = new Size(300, 20);
            lista.Size = new Size(300, 20);

            // posição dos compomentes no formulario
            titulo.Location = new Point(5, 10);
            texto.Location = new Point(5, 45);
            numero.Location = new Point(5, 70);
            spinner1.Location = new Point(5,90);
            lista.Location = new Point(5, 120);
            spinner2.Location = new Point(5, 140);
            botao.Location = new Point(5, 170);

            // Evento do botão
            botao.Click += new System.EventHandler(this.botao_Click);

            // Adiciona componentes ao formulario
            Form1.ActiveForm.Controls.Add(titulo);
            Form1.ActiveForm.Controls.Add(texto);
            Form1.ActiveForm.Controls.Add(numero);
            Form1.ActiveForm.Controls.Add(spinner1);
            Form1.ActiveForm.Controls.Add(lista);
            Form1.ActiveForm.Controls.Add(spinner2);
            Form1.ActiveForm.Controls.Add(botao);

        }

        // Dispara evento on click do botão
        private void botao_Click(object sender, EventArgs e)
        {
            texto.Text = "Numero: " + spinner1.Value.ToString() + " " +
                         "Estação: " + spinner2.Text;
        }

    }
}

Combo Box

Em computação, uma caixa de combinação é um elemento de interface gráfica. Um ComboBox, que permite ao usuário escolher uma das várias opções, pode ter duas formas muito diferentes. A forma padrão é a caixa de combinação não editável, que conta com um botão e uma lista suspensa de valores. A segunda forma, chamada de caixa de combinação editável, possui um campo de texto com um pequeno botão confinando-o. O usuário pode digitar um valor no campo de texto ou clique no botão para exibir uma lista drop-down.

List Box

Em computação, uma caixa de listagem é um elemento de interface gráfica. Uma ListBox apresenta ao usuário um grupo de itens, exibidos em uma ou mais colunas. As listas podem ter muitos itens, por isso eles são muitas vezes colocados em painéis de rolagem.

Selected Index Changed

É um evento que ocorre quando um item é alterado.

Mouse Double Click

É um evento no qual é disparado quando o usuário efetua um duplo click no componente;

Exemplo:

Neste exemplo escrevemos um combobox e um listbox que interagem entre si por seus eventos. Lembre-se que não utilizamos em nosso curso o método Design First Code Later, escrevemos o programa usando código dinâmico. Após abrir o projeto no Visual Studio para abrir a unidade de código csharp clique no form,  na janela de propriedades, no botão de eventos e de um duplo clique na opção Shown.

C#

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

namespace Combobox
{
    public partial class Form1 : Form
    {
        // Declara os componentes
        Label titulo;
        Label tmusica;
        Label tcombo;
        Label tlista;
        ComboBox combo;
        ListBox lista;

        // Declara uma Array de itens
        string[] itens = {"Satisfaction" , "Paint it Black" , "Wild Horses", "Brown Sugar",
                          "Sympathy for the Devil", "Start Me Up"} ;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Adiciona propriedade ao formulario
            Form1.ActiveForm.Text = "Desenvolvimento Aberto - ComboList";

            // Cria componentes
            titulo = new Label();
            tmusica = new Label();
            tcombo = new Label();
            tlista = new Label();
            combo = new ComboBox();
            lista = new ListBox();

            // Adiciona propriedades ao componentes
            titulo.Text = "Rolling Stones : ";
            tmusica.Text = "Música";
            tcombo.Text = "Combobox - Escolha uma Opção";
            tlista.Text = "ListBox - Duplo click em uma Opção";

            combo.Items.AddRange(itens);
            lista.Items.AddRange(itens);

            combo.SelectedIndex = 0;
            lista.SelectedIndex = 0;

            titulo.Size = new Size (90, 20);
            tmusica.Size = new Size (200, 20);
            tcombo.Size = new Size (200, 20);
            combo.Size = new Size (160, 20);
            tlista.Size = new Size (200, 20);
            lista.Size = new Size (160, 90);

            // Posiciona componentes no formulario
            titulo.Location = new Point (5, 10);
            tmusica.Location = new Point (100, 10);
            tlista.Location = new Point(5, 50);
            lista.Location = new Point(5, 70);
            tcombo.Location = new Point(5, 170);
            combo.Location = new Point(5, 190);

            // Cria eventos
            lista.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lista_MouseDoubleClick);
            combo.SelectedIndexChanged += new System.EventHandler(this.combo_SelectedIndexChanged);

            // Adiciona componentes ao formulario
            Form1.ActiveForm.Controls.Add(titulo);
            Form1.ActiveForm.Controls.Add(tmusica);
            Form1.ActiveForm.Controls.Add(tlista);
            Form1.ActiveForm.Controls.Add(lista);
            Form1.ActiveForm.Controls.Add(tcombo);
            Form1.ActiveForm.Controls.Add(combo);

        }

        // Evento ocorre quando seleciona um item
        private void combo_SelectedIndexChanged(object sender, EventArgs e)
        {
            Object item = combo.SelectedItem;
            tmusica.Text = item.ToString();
            lista.SelectedIndex = combo.SelectedIndex;
        }

        // Evento ocorre quando um duplo click é efetuado
        private void lista_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            Object item = lista.SelectedItem;
            tmusica.Text = item.ToString();
            combo.SelectedIndex = lista.SelectedIndex;
        }

    }
}