Publicado em C#, C++, MySQL, Programação, WPF

Como obter o próximo id livre de uma tabela MySQL (C# WPF)

Mais uma dica que pode ser útil … mas apenas em monoposto!

Antes de inserir um novo registo, sem recurso ao AUTO_INCREMENT, podemos desejar saber o valor do campo chave, que será obtido incrementando o id de valor mais alto.

Deixo aqui uma forma de o conseguir que, embora pouco sofisticada, faz o serviço.

#region Calcular o próximo id livre
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ligacaoBD.Open();
        string stm = "select max(idContacto) as x from contacto";
        MySqlCommand cmd = new MySqlCommand(stm, ligacaoBD);
        int id;
        Int32.TryParse(cmd.ExecuteScalar().ToString(), out id);
        id++;
        MessageBox.Show("O próximo id é " + id.ToString());
    }
    catch
    {
        MessageBox.Show("Erro!");
    }
        finally
    {
        ligacaoBD.Close();
    }

}
#endregion

Link para download da base de dados e código:

https://app.box.com/s/r1bqtvburr1dknn2455ntzenyadvs6ln

Publicado em C#, Programação, WPF

Como percorrer uma Datagrid e mostrar os dados linha a linha (C# WPF)

Neste exemplo vou utilizar uma Datagrid que é carregada a partir de uma tabela MySQL.

O efeito é este:

Quando o botão for pressionado, pretendo aceder a cada campo de cada registo, percorrendo as várias linhas de cima para baixo.

Para cada linha será exibida uma string correspondente à concatenação dos três campos.

No code-behind teremos:

...
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    foreach (DataRowView row in dataGridContactos.Items)
    {
        string contacto = row.Row.ItemArray[0].ToString();
        string nome = row.Row.ItemArray[1].ToString();
        string idade = row.Row.ItemArray[2].ToString();
        string registo = contacto + " | " + nome + " | " + idade;
        MessageBox.Show(registo);
    }
}
...

Link para download da base de dados e código:

https://app.box.com/s/a0jezp8boau6tqjd3j6zsovd54jggseg

Publicado em C#, Programação, WPF

Utilizando controlos do Extended WPF Toolkit™ Community Edition

Por vezes os controlos padrão disponibilizados para criar a nossa aplicação WPF não correspondem integralmente às nossas necessidades.

Uma primeira alternativa consiste em criar controlos personalizados, o que pode ser uma tarefa complexa para os menos experientes.

A segunda, mais simples, consiste em recorrer a bibliotecas e ferramentas adicionais, como é o caso da que vamos utilizar aqui.

A título de exemplo, vamos supor que desejamos utilizar uma TextBox para ler matrículas de automóveis posteriores a 2007.

Continue reading “Utilizando controlos do Extended WPF Toolkit™ Community Edition”

Publicado em C#, Programação, WPF

Slideshow Manual usando C# e WPF

Este exemplo é muito simples e apenas me serviu para testar:

  • carregar imagens para um controlo Image que se encontram organizadas num ResouceDictionary;
  • Selecionar as imagens mediante a utilização de dois botões “anterior” e “seguinte“;
  • Associar uma ação ao botão central, no qual está a ser exibida a imagem, que será diferente dependendo da imagem selecionada.

Continue reading “Slideshow Manual usando C# e WPF”

Publicado em C#, Programação, WPF

WPF DropShadowEffect

Uma forma muito simples de aplicar uma sombra a um controlo consiste em utilizar o efeito “DropShadowEffect“.

Este, tal como o “BlurEffect“, vem pré-definido na Framework .NET, sendo muito simples a sua utilização.

<Grid HorizontalAlignment="Center" VerticalAlignment="Center" >
    <StackPanel Orientation="Vertical">
        <Label Content="Efeito Sombra (DropShadowEffect)" FontFamily="Cooper Black" FontSize="50" Foreground="#AA000000" HorizontalAlignment="Center" Margin="10">
            <Label.Effect>
                <DropShadowEffect/>
            </Label.Effect>
        </Label>
        <Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="Botão Com Sombra" Foreground="#FF000000" FontFamily="Cooper Black" FontSize="40" Margin="10" Padding="10"  >
            <Button.Effect>
                <DropShadowEffect />
            </Button.Effect>
        </Button>
    </StackPanel>
</Grid>

Recorrendo ao Blend podemos ter ainda mais efeitos disponíveis, mas estaremos a aumentar a complexidade.

Boas formatações!

Fonte: https://wpf.2000things.com/tag/dropshadoweffect/

Publicado em C#, Programação, WPF

WPF Yes/No MessageBox – “O Trump tem um penteado estranho?”

O exemplo seguinte demonstra como usar uma MessageBox para confirmar um determinada operação, como por exemplo, decidir se vamos eliminar definitivamente um registo numa base de dados, ou não.

Neste caso vamos apenas questionar o estilo capilar do mais recente Presidente dos USA.

Ao pressionar o botão surge a pergunta:

Se responder sim faz algo … neste caso chama outra MessageBox:

Caso contrário, também merecemos uma resposta … neste caso:

O código é muito simples:

using System.Windows;

namespace yesOrNoWpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Tem a certeza?", "O Trump tem um penteado estranho.", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                MessageBox.Show("Pois tem.");
            }
            else
            {
                MessageBox.Show("Ai isso é que tem!");
            }
        }
    }
}

O exemplo pode ser descarregado aqui: https://app.box.com/s/pg6s6m6thi9nz83jz87v6lufh3uwxjfp

Ler mais informações acerca da classe MessageBox.

Publicado em C#, Programação, WPF

Como carregar num botão da interface recorrendo à programação (C# WPF)

Carregar num botão de uma interface gráfica é tão simples como pegar no rato e fazer um clique sobre o mesmo!

Mas vamos supor que queremos clicar noutro botão (B2) que, após a execução de uma tarefa, exige que um segundo botão seja também clicado(B1).

exemplobotaoNeste exemplo, sempre que um botão é pressionado, o seu contador é incrementado. Continue reading “Como carregar num botão da interface recorrendo à programação (C# WPF)”

Publicado em C#, Programação, Uncategorized, WPF

Controlando vários botões com o mesmo evento numa aplicação C# WPF

Já tinha abordado este assunto no passado a respeito da criação do Jogo do Galo escrito em C++/Qt (ver aqui).

A ideia consiste em controlar vários botões com um único evento, como por exemplo num teclado numérico que serve para introduzir códigos de até seis algarismos.

mykeyboard

Continue reading “Controlando vários botões com o mesmo evento numa aplicação C# WPF”

Publicado em C#, MySQL, Programação, WPF

Manipulação de imagens associadas a um “Image Control” – Ficheiro> source>MySQL

trio3

Com este exemplo pretendo demonstrar algumas formas de manipular imagens no contexto de uma aplicação escrita na linguagem C# (WPF). Para o efeito vamos considerar a imagem quando armazenada num ficheiro de disco, a imagem carregada para o controlo Image e a imagem quando armazenada numa base de dados (MySQL).

Por uma questão de simplificação apenas vou considerar o formato JPEG.

Em síntese, com a aplicação aqui apresentada, pretendo dar resposta às seguintes questões:

  • Como carregar a imagem de um Resource Dictionary para um controlo Image?
  • Como carregar uma imagem armazenada em disco para um controlo Image?
  • Como carregar os dados da base de dados para a DataGrid, sendo um dos campos do tipo BLOB?
  • Como inserir um registo na base de dados, sendo um dos campos do tipo imagem (Blob)?
  • Como copiar uma imagem do registo selecionada na DataGrid para outra imagem (área de preview)?
  • Como guardar em disco uma imagem exibida num controlo Image?
  • Como guardar em disco uma imagem exibida num campo de uma DataGrid?
  • Como copiar a imagem exibida num campo de uma DataGrid para um controlo Image?

O Código completo pode ser descarregado aqui. Continue reading “Manipulação de imagens associadas a um “Image Control” – Ficheiro> source>MySQL”