Você está na página 1de 15

Interfaces Windows com C#

C# uma linguagem orientada ao objecto moderna que possibilita os programadores a construir rpida e facilmente solues para a plataforma Microsoft .NET. E este trabalho tem como objectivo apresentar alguns dos comandos e utilidades de Interfaces Windows com o C#.

Redimensionamento de Forms
Dock
Dock a propriedade que fixa o seu componente a alguma borda do formulrio. this.button1.Dock = System.Windows.Forms.DockStyle.Left; Para ver em aco esta propriedade, coloca-se aleatoriamente sete botes numa form, como se v na imagem:

Digita-se em seguida o cdigo abaixo no evento Load do formulrio. private void Form1_Load(object sender, System.EventArgs e) { this.button1.Dock = System.Windows.Forms.DockStyle.Top; this.button2.Dock = System.Windows.Forms.DockStyle.Top; this.button3.Dock = System.Windows.Forms.DockStyle.Bottom; this.button4.Dock = System.Windows.Forms.DockStyle.Bottom; -1-

this.button5.Dock = System.Windows.Forms.DockStyle.Left; this.button6.Dock = System.Windows.Forms.DockStyle.Right; this.button7.Dock = System.Windows.Forms.DockStyle.Fill; } O resultado ser igual imagem:

Muito interessante, porm pouco funcional. Propondo um exemplo funcional, vamos simular um Windows explorer e utilizar a propriedade Dock para funcionalidades mais teis. Numa form introduzimos uma treeview e alteramos a propriedade Dock para left. Colocamos agora um componente splitter, que serve para redimensionar a treeview quando o programa estiver a correr, que possui j por default a propriedade Dock como Left. Coloca-se agora o componente listview do lado direito do spliter e configura-se a propriedade Dock para Fill. Visualmente j possumos um simulador de Windows Explorer, que pode ser redimensionado livremente sem comprometer sua visualizao.

-2-

Anchor
Passando para a propriedade Anchor, a sua finalidade definir uma constante de limite entre a borda e o prprio elemento, ou seja, ancorar o seu componente a uma ou mais das suas bordas. Assim como a propriedade Dock, Anchor pode ser alterada na janela Properties ou no decorrer do programa atravs de cdigo. Vejamos o exemplo seguinte:

this.button1.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right); Esta propriedade muito til quando desejamos ter o controle de como os componentes iro ser esticados. Vamos considerar o formulrio a seguir:

Sem alterar nenhuma propriedade default, ao executarmos o programa se maximizarmos o form, os componentes no se movem e o formulrio fica com uma imensa rea cinza intil. Pode-se desejar que o componente da descrio seja aumentado para facilitar a sua visualizao.

-3-

Para resolver este problema procedemos aos seguintes passos: 1. A label consulta no precisa de ser alterado. Por default esta ancorado como Left e Top. 2. Na combobox altera-se a propriedade Anchor para Left, Top e Right. Assim ser esticado horizontalmente. 3. Na label descrio, altera-se a propriedade Anchor somente para Left. Assim continuar centralizado em relao ao textbox. 4. Na textbox, marca-se todas as opes, ou seja, Left, Top, Right e Bottom. 5. Finalmente altera-se os botes para Right e Bottom. Para ficar ainda melhor, alterar-se a propriedade MinimumSize do formulrio para o tamanho actual do mesmo. Desta forma, se o utilizador tentar diminuir demais o form, no ir esconder os seus componentes.

Panels
Considerando o seguinte formulrio, para o redimensionar teramos de utilizar as propriedades Dock e Anchor. Contudo, para o conseguir esse efeito dependemos mais do que isso, pois no permitido no mesmo componente alterar as propriedades Dock e Anchor ao mesmo tempo.

Como soluo a este problema utilizamos os Panels, que servem como container de componetes. Divide-se o form em duas partes conforme a imagem sugere. As cores diferentes dos panels so para facilitar a sua visualizao e compreenso. No panel vermelho, alterar-se a propriedade Dock para Top e no verde para Fill. -4-

No panel vermelho, coloca-se mais dois novos panels, dividindo a rea entre eles. Para isso alterar-se a propriedade Dock do panel amarelo para Left e do Azul para Fill.

Ao executar o programa e maximizar o formulrio os panels com Dock igual a Fill redimensionam conforme o form, o panel amarelo permanece inalterado. Agora basta preencher os panels com os seus componentes respectivos do formulrio inicial, com as seguintes regras: O panel amarelo e azul no so redimensionados verticalmente; O panel amarelo no redimensionado horizontalmente.

-5-

Controlos de Interface
Os componentes de dilogo dos formulrios so as mesmas caixas de dilogo encontradas no sistema do Windows, temos o OpenFileDialog, para abrir um ficheiro; o SaveFileDialog, para gravar um ficheiro; o PrintDialog, caixa de dilogo para impresso de um ficheiro, FontDialog, caixa de dilogo para mudar a font de um documento, ColorDialog, muda a cor de um documento, etc. Para usar uma caixa de dilogo, na toobox arrasta-se para a form o componente pertendido, que no aparecer quando a form estiver a correr. Coloca-se um boto ou cria-se um menu, que ser usado para chamar a caixa de dilogo.

Open File Dialog


Este componente apresenta ao usurio uma caixa de dilogo que permite abrir ficheiros que retorna o caminho e o nome do ficheiro seleccionado na caixa de dilogo.

Ao componente Openfiledialog deu-se o nome cdAbrir. No Menu Guardar para abrir um ficheiro na caixa de dilogo para uma rich text box, com o nome rtbficheiro, implementa-se o cdigo:

-6-

private void Abrir_Click(object sender, System.EventArgs e) { //filtrar os ficheiros TXT ou Rtf cdAbrir.Filter = "Ficheiros TXT|*.TXT|Ficheiros RTF|*.RTF|Todos Ficheiros|*.*"; //mostrar o titulo cdAbrir.Title = "Selecione um ficheiro para abrir"; if (cdAbrir.ShowDialog() == DialogResult.OK) { //obter o nome do ficheiro que deseja abrir... string ficheiro = cdAbrir.FileName; //carregar o ficheiro na Rich Text Box if (System.IO.Path.GetExtension(ficheiro).ToUpper() == ".TXT") this.rtbficheiro.LoadFile(ficheiro,RichTextBoxStreamType.PlainText); else this.rtbficheiro.LoadFile(ficheiro); } }

os

Save File Dialog


Este componente mostra ao usurio uma caixa de dilogo que o possibilita escolher o caminho e o nome do ficheiro a guardar.

-7-

Depois de se adicionar form o componente Savefiledialog e se dar o nome cdGuardar, passa-se para o cdigo do boto Guardar no menu ficheiro.
private void Guardar_Click(object sender, System.EventArgs e) { //mostrar o titulo cdGuardar.Title = "Guardar Ficheiros como:"; //filtrar o ficheiros txt ou rtf cdGuardar.Filter = "Ficheiros TXT|*.TXT|Ficheiros RTF|*.RTF"; if (cdGuardar.ShowDialog() == DialogResult.OK) { //se escolher a primeira opo da combobox filter if (cdGuardar.FilterIndex == 1) //guardar o ficheiro com a extenso TXT this.rtbficheiro.SaveFile(cdGuardar.FileName,RichTextBoxStreamType.Pla inText); //caso a seja escolhida a segunda opo else if (cdGuardar.FilterIndex == 2) //guardar o ficheiro com a extenso RTF this.rtbficheiro.SaveFile(cdGuardar.FileName,RichTextBoxStreamType.RichText) ; MessageBox.Show("Ficheiro Guardado com sucesso"); } }

Font Dialog Com este componente poderemos mudar o tipo e o tamanho de letra da nossa rich text box.

-8-

No menu Font implementamos o seguinte cdigo:


private void Font_Click(object sender, System.EventArgs e) { this.cdFont.ShowDialog(); this.rtbficheiro.Font = this.cdFont.Font; }

Color Dialog
Com este componente mudamos a cor do texto da nossa rich text box.

private void menuItem16_Click(object sender, System.EventArgs e) { this.colorDialog1.ShowDialog(); this.rtbficheiro.SelectionColor = this.colorDialog1.Color; }

-9-

Toolbar
Uma Toolbar serve para agrupar um conjunto de botes. Vamos ver como se adiciona uma Toolbar a uma form, com imagens nos seus botes. Arrasta-se o componente Toolbar para a form. De seguida, da Toolbox adiciona-se uma ImageList form, e nas suas propriedades temos a possibilidade de adicionar imagens ImageList

Clicamos agora em (Collection) para aparecer o editor da Image Collection. Usamos o Add para adicionar uma imagem ImageList. Adicionei 3 imagens para as aces Guardar, Abrir, e Retroceder.

- 10 -

Na propriedade ImageList da toolbar adicionamos a nossa ImageList, que neste caso se chama Imagens. Agora vamos propriedade Buttons, que nos permite adicionar e remover botes toolbar, abrimos o seu editor e adicionamos 3 botes, Abrir, Guardar e Retroceder. Para cada boto definimos uma imagem na ImageList, que agora esto disponveis, pois foram introduzidas anteriormente na ImageList, e mudamos o Text para o nome de cada boto.

- 11 -

A toolbar est completa e ficou com a seguinte apresentao:

Por ltimo o cdigo para cada um dos botes processa-se da seguinte forma:

- 12 -

private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { //executa a opo escolhida switch (toolBar1.Buttons.IndexOf(e.Button)) { case 0: MessageBox.Show("Clicou no boto abrir"); break; case 1: MessageBox.Show("Clicou no boto guardar"); break; case 2: MessageBox.Show("Clicou no boto Sair"); break; } }

StatusBar
A statusbar usada para mostrar o estado de algumas funcionalidades da aplicao. Podemos adicionar quantos painis quisermos a uma statusbar para mostrar diferentes tipos de informao. Na toolbox arrastamos o componente statusbar para a form, e damos o nome de BarradeEstado.

No caso de querermos mostrar em baixo a aco que executamos, como por exemplo quando carregamos no boto Adicionar, aparecer na barra de estado um Pessoa Adicionada. Para isso temos de no boto adicionar colocar o cdigo:
this.BarradeEstado.Text = "Pessoa Adicionada";

- 13 -

Na statusbar temos a possibilidade de criar painis, para isso temos de ir propriedade da statusbar e por o ShowPanels a true. Abrimos de seguida em Panel o StatusbarPanel Collection editor e adicionamos 2 panels, sendo o segundo alinhado direita e aumentado a largura para 170.

O primeiro panel ser para texto j antes feito e o segundo para apresentar a data e hora. No boto Adicionar agora o cdigo ser o seguinte:
this.BarradeEstado.Panels[0].Text = "Pessoa Adicionada";

- 14 -

Arrastamos para o form o componente Timer e nas suas propriedades pomos o Enable a true. Nos eventos clicamos duas vezes no Tick e colocamos o seguinte cdigo:
private void timer1_Tick(object sender, System.EventArgs e) { this.BarradeEstado.Panels[1].Text = DateTime.Now.ToString(); }

Concluso
Com este trabalho acabei por estudar e relembrar um pouco mais sobre este tema, o que foi bastante positivo. Na preparao do trabalho tive muita dificuldade em arranjar material na net, e mais informao para alm da que j tinha sido dada nas aulas, pois queria poder explorar um pouco mais os temas que aqui foram falados, mas acho que o essencial foi dito e tentei-o explicar da melhor maneira.

Slvia Manuela Astorga Vieira

- 15 -

Você também pode gostar