quarta-feira, 30 de maio de 2018

Como arraste e solte uma imagem de uma pasta para picturebox com C#


Vamos aprendemos como arraste e solte uma imagem de uma pasta para picturebox no WinForms.
Passo 1: crie um novo aplicativo do Windows em C#. 
Passo 2: Tome o controle picturebox e coloque-o no formulário abaixo.


Passo 3:  defina a propriedade AllowDrop do formulário como True.
Passo 4: Colocar mais quatro namespace.
using System.Drawing;
using System.IO;
using
 System.Threading;
using
 System.Diagnostics;

Passo 5:Escreva o código a seguir.


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

namespace WindowsFormsApplication1
{
    
public partial class Form1 : Form
    {

        protected bool validData;
        string path;
        
protected Image image;
        
protected Thread getImageThread        public Form1()
        {

            InitializeComponent();

        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            
string filename;
            validData = GetFilename(
out filename, e);
            
if (validData)
            {

                path = filename;

                getImageThread = 
new Thread(new ThreadStart(LoadImage));
                getImageThread.Start();

                e.Effect = DragDropEffects.Copy;

            }

            
else
                e.Effect = DragDropEffects.None;

        }

        
private bool GetFilename(out string filename, DragEventArgs e) 

        {
            
bool ret = false;
            filename = 
String.Empty;
            
if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy)
            {
                
Array data = ((IDataObject)e.Data).GetData("FileDrop"as Array;
                
if (data != null)
                {

                    
if ((data.Length == 1) && (data.GetValue(0) is String))
                    {

                        filename = ((
string[])data)[0];
                        
string ext = Path.GetExtension(filename).ToLower();
                        
if ((ext == ".jpg") || (ext == ".png") || (ext == ".bmp"))
                       {

                            ret = 
true;
                        }

                    }

                }

            }

            
return ret;
        }

        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            
if (validData)
            {

                
while (getImageThread.IsAlive)
                {

                    Application.DoEvents();

                    
Thread.Sleep(0);
                }

                pictureBox1.Image = image;

            }

        }

        protected void LoadImage()
        {
            image = 
new Bitmap(path);
        }

    }

}


Etapa 6: Executar o aplicativo, F5.
Etapa 7: Arraste o arquivo de imagem no formulário.


quinta-feira, 17 de maio de 2018

Como obter a posição da tela de um controle dentro de um Formulário?

Point p = frmLogin.PointToScreen(Text1.Location);

quarta-feira, 16 de maio de 2018

Como definir cor RGB no C# via código [Resolvido]

Para definir cor de algum controle/componente, no formato RGB, basta usar a seguinte instrução:

this.BackColor = Color.FromArgb(255, 232, 232);

Proximo passo.
Para quem quer aprender a usar o ColorDialog para definir cores como no paint:
Clica aqui para ver mais detalhes.

Como usar o ColorDialog no C#

ColorDialog
Um controle ColorDialog é usado para selecionar uma cor das cores disponíveis e também definir cores personalizadas. Uma caixa de diálogo de cores típica se parece com a Figura 1, onde você pode ver que há uma lista de cores sólidas básicas e que há uma opção para criar cores personalizadas.
ColorDialogImg1.jpg
figura 1
Criando um ColorDialog
Podemos criar um controle ColorDialog usando um designer de formulários no tempo de design ou usando a classe ColorDialog no código em tempo de execução (também conhecido como dinamicamente). Ao contrário de outros controles do Windows Forms, um ColorDialog não tem e não precisa de propriedades visuais como os outros. O único objetivo do ColorDialog é exibir cores disponíveis, criar cores personalizadas e selecionar uma cor dessas cores. Quando uma cor é selecionada, precisamos dessa cor em nosso código para que possamos aplicá-la em outros controles.
Novamente, você pode criar um ColorDialog em tempo de design, mas é mais fácil criar um ColorDialog em tempo de execução.
Tempo de design
Para criar um controle ColorDialog em tempo de design, basta arrastar e soltar um controle ColorDialog da caixa de ferramentas para um formulário no Visual Studio. Depois de arrastar e soltar um ColorDialog em um formulário, o ColorDialog se parece com a Figura 2.
ColorDialogImg2.jpg
Figura 2
Adicionando um ColorDialog a um formulário adiciona seguindo duas linhas de código.

private System.Windows.Forms. ColorDialog colorDialog1;
this .colorDialog1 = new System.Windows.Forms. ColorDialog ();
Tempo de execução
Criar um controle ColorDialog em tempo de execução é apenas um trabalho de criar uma instância da classe ColorDialog, definir suas propriedades e adicionar a classe ColorDialog aos controles de formulário.
O primeiro passo para criar um ColorDialog dinâmico é criar uma instância da classe ColorDialog. O trecho de código a seguir cria um objeto de controle ColorDialog.
ColorDialog colorDlg = new ColorDialog ();

O método ShowDialog do ColorDialog exibe o ColorDialog. O trecho de código a seguir define as propriedades cor de plano de fundo, cor de primeiro plano, Texto, Nome e Fonte de um ColorDialog.
colorDlg.ShowDialog ();

Uma vez que o método ShowDialog é chamado, você pode escolher cores na caixa de diálogo.

Definindo as propriedades do ColorDialog
Depois de colocar um controle ColorDialog em um formulário, a próxima etapa é definir propriedades.
A maneira mais fácil de definir propriedades é a partir da janela Propriedades. Você pode abrir a janela Propriedades pressionando F4 ou clique com o botão direito em um controle e selecione o item de menu Propriedades. A janela Propriedades se parece com a Figura 3.
ColorDialogImg3.jpg
Figura 3
AllowFullOpen
Se você observar a Figura 1, verá um botão chamado Definir cores personalizadas no ColorDialog. Clicar neste botão abre a área do editor de cores personalizadas, onde você pode definir as cores definindo valores de cores RGB (entre 0 e 255) e também pode selecionar uma cor na área de cores, como você pode ver na Figura 4.
ColorDialogImg4.jpg
Figura 4
A propriedade AllowFullOpen garante que a opção Definir cor personalizada esteja ativada em um ColorDialog. Se você deseja desabilitar esta opção, você pode definir a propriedade AllowFullOpencomo false e seu ColorDialog será semelhante à Figura 5.
ColorDialogImg5.jpg
Figura 5
 
O trecho de código a seguir define a propriedade AllowFullOpen como false.
colorDlg.AllowFullOpen = false ;
Cor, AnyColor e SolidColorOnly
A propriedade Color é usada para obter e definir a cor selecionada pelo usuário em um ColorDialog.
AnyColor é usado para obter e definir se um ColorDialog exibe todas as cores disponíveis no conjunto de cores básicas.
SolidColorOnly é usado para obter e definir se um ColorDialog restringe os usuários a selecionar somente cores sólidas.
O fragmento de código a seguir define essas propriedades.
colorDlg.AnyColor = true ;
colorDlg.SolidColorOnly = false ;
colorDlg.Color = Cor . Vermelho ;
Usando ColorDialog em Aplicativos
Agora vamos criar um aplicativo que use um ColorDialog para definir cores de vários controles. O aplicativo do Windows Forms é semelhante à Figura 6.
ColorDialogImg6.jpg
Figura 6
Na Figura 6, temos alguns controles do Windows Forms e clicar nos botões Foreground Color e Background Color permitirá que o usuário selecione uma cor e defina essa cor como cores de primeiro e segundo plano dos controles. Depois de selecionar as cores de primeiro plano e de fundo, o formulário se parece com a Figura 7.
ColorDialogImg7.jpg
Figura 7
O trecho de código a seguir é o código para os botões Foreground Color e Background Color, clique em manipuladores de eventos.
Vazio privado ForegroundButton_Click ( remetente do objeto , EventArgs e)
{
    ColorDialog colorDlg = new ColorDialog ();
    colorDlg.AllowFullOpen = false ;
    colorDlg.AnyColor = true ;
    colorDlg.SolidColorOnly = false ;
    colorDlg.Color = Cor . Vermelho ;
                    
    if (colorDlg.ShowDialog () == DialogResult .OK)
    {
        textBox1.ForeColor = colorDlg.Color;
        listBox1.ForeColor = colorDlg.Color;
        button3.ForeColor = colorDlg.Color;
    }
}

private void BackgroundButton_Click ( remetente do objeto , EventArgs e)
{
    ColorDialog colorDlg = new ColorDialog ();
    if (colorDlg.ShowDialog () == DialogResult .OK)
    {
        textBox1.BackColor = colorDlg.Color;
        listBox1.BackColor = colorDlg.Color;
        button3.BackColor = colorDlg.Color;
    }
}

Resumo 
Um controle ColorDialog permite que os usuários iniciem o Diálogo de Cor do Windows e permitam que eles selecionem uma cor sólida ou criem uma cor personalizada a partir das cores disponíveis. Neste artigo, discutimos como usar um diálogo de cores do Windows e definir suas propriedades em um aplicativo do Windows Forms.

Pesquisar neste blogue

Com tecnologia do Blogger.

Páginas