none
COMO POSSO IMPLEMENTAR O ANEXO DE IMAGENS NESTE CÓDIGO? RRS feed

  • Pergunta

  • Olá queria saber como posso implementar o anexo de imagens neste código, quando eu clicar no botão "btnAnexo", abrir um "OpenFileDialog" e quando escolher a imagem enviar lá.

    Obs: queria saber pois sou novo em c#, estou aprendendo ainda

    obrigado pela sua resposta e ajuda!

    Código--------->

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using jabber.client;
    using jabber.protocol.client;
    using System.Runtime.InteropServices;

    namespace Gtalk
    {
        public partial class FrmChat : Form
        {
            StringBuilder conversation;

            public FrmChat()
            {
                InitializeComponent();
                conversation = new StringBuilder();
            }


            private string _mailId;

            public string MailId
            {
                get { return _mailId; }
                set { _mailId = value; }
            }

            private JabberClient _jabberClient;

            public JabberClient JabberClint
            {
                get { return _jabberClient; }
                set { _jabberClient = value; }
            }

            private int _frmChatIndex;

            public int FrmChatIndex
            {
                get { return _frmChatIndex; }
                set { _frmChatIndex = value; }
            }

            private bool _receiveFlag;

            public bool ReceiveFlag
            {
                get { return _receiveFlag; }
                set { _receiveFlag = value; }
            }


            private void FrmChat_Load(object sender, EventArgs e)
            {
                _jabberClient.OnMessage += new MessageHandler(_jabberClient_OnMessage);
                rtbSendMessage.Focus();

            }

            public void _jabberClient_OnMessage(object sender, jabber.protocol.client.Message msg)
            {
                if (!this.ReceiveFlag)
                {
                    if (msg.From.Bare == this.MailId)
                    {
                        if (msg.Body != "")
                        {
                            string receivedMsg = msg.From.User + " Disse : " + msg.Body + "\n";
                            AppendConversation(receivedMsg);
                            msg.Body = "";
                        }
                    }
                }


            }

            public void AppendConversation(string str)
            {
                conversation.Append(str);
                rtbConversation.Text = conversation.ToString();
                rtbConversation.Focus();
                rtbConversation.SelectionStart = rtbConversation.Text.Length - 1;
                rtbConversation.ScrollToCaret();
                rtbSendMessage.Focus();
            }

            private void exitToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.Hide();
            }

            private void SendMessage()
            {
                jabber.protocol.client.Message reply = new jabber.protocol.client.Message(_jabberClient.Document);
                if (rtbSendMessage.Text != "\n" && rtbSendMessage.Text != " ")
                {
                    reply.Body = rtbSendMessage.Text;
                    if (reply.Body != "")
                    {
                        reply.To = _mailId;
                        _jabberClient.Write(reply);
                        string sentMsg = _jabberClient.User + " Você disse : " + rtbSendMessage.Text + "\n";
                        AppendConversation(sentMsg);
                        rtbSendMessage.Text = "";
                    }
                }

            }

            private void FrmChat_FormClosing(object sender, FormClosingEventArgs e)
            {
                conversation = null;
                if (conversation == null)
                    conversation = new StringBuilder();
                rtbConversation.Text = "";
            }

            private void rtbSendMessage_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Return)
                {
                    SendMessage();
                    this.ReceiveFlag = false;
                    e.Handled = true;
                }
            }

            //Overriding Form Close button
            protected override void WndProc(ref System.Windows.Forms.Message m)
            {
                if (m.Msg != 0x0010)
                {
                    base.WndProc(ref m);
                }
                else
                {
                    //Windows has send the WM_CLOSE message to your form.
                    //Ignore this message will make the window stay open.
                    ClearConversation();
                }
            }

            private void ClearConversation()
            {
                conversation = null;
                if (conversation == null)
                    conversation = new StringBuilder();
                rtbConversation.Text = "";
                this.ReceiveFlag = false;
                this.Hide();
            }

            private void rtbConversation_TextChanged(object sender, EventArgs e)
            {

            }

            private void btnSignOut_Click(object sender, EventArgs e)
            {

            }
        }
    }

    <---------Código

    quinta-feira, 25 de dezembro de 2014 07:01

Respostas

  • Então tenta assim:

                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();
    
                if (System.IO.File.Exists(file.FileName))
                {
                    Bitmap img = new Bitmap(file.FileName);
                    Clipboard.SetImage(img);
                    richTextBox1.Paste();
                }
    


    Natan

    • Sugerido como Resposta Mr. GMSOFT sexta-feira, 26 de dezembro de 2014 13:56
    • Marcado como Resposta MichaelKeller sexta-feira, 26 de dezembro de 2014 23:12
    quinta-feira, 25 de dezembro de 2014 23:39
  • Claro.... tenta assim:

            private void button1_Click(object sender, EventArgs e)
            {
                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();
    
                if (System.IO.File.Exists(file.FileName))
                {
                    Bitmap img = new Bitmap(file.FileName);
                    img = (Bitmap)bmpResize(img, new System.Drawing.Size(48, 48));
                    Clipboard.SetImage(img);
                    richTextBox1.Paste();
                }
    
            }
    
            public static Image bmpResize(Image image, Size size)
            {
                return (Image)(new Bitmap(image, size));
            }


    Natan


    • Editado 'Natan Silva sábado, 27 de dezembro de 2014 00:32
    • Marcado como Resposta MichaelKeller sábado, 27 de dezembro de 2014 23:24
    sábado, 27 de dezembro de 2014 00:32

Todas as Respostas

  • Michael,

    o caminho para usar o openFileDialog é esse:

            private void button1_Click(object sender, EventArgs e)
            {
                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();
    
                if (System.IO.File.Exists(file.FileName))
                {
                    textBox1.Text = file.FileName;
                }
            }
    Abraço!


    Natan

    quinta-feira, 25 de dezembro de 2014 11:47
  • Obrigado, mas este não seria o método que iria usar pois apenas o texto vai para o Textbox, eu queria que aparece-se a imagem

    quinta-feira, 25 de dezembro de 2014 22:10
  • Então tenta assim:

                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();
    
                if (System.IO.File.Exists(file.FileName))
                {
                    Bitmap img = new Bitmap(file.FileName);
                    Clipboard.SetImage(img);
                    richTextBox1.Paste();
                }
    


    Natan

    • Sugerido como Resposta Mr. GMSOFT sexta-feira, 26 de dezembro de 2014 13:56
    • Marcado como Resposta MichaelKeller sexta-feira, 26 de dezembro de 2014 23:12
    quinta-feira, 25 de dezembro de 2014 23:39
  • Bom dia Michael,

    Você pretende armazenar o arquivo no banco de dados?

    Eu acho melhor armazenar apenas o caminho do arquivo no banco (para ser apenas uma referência) e quando clicar para anexar, utilize o código abaixo.

    CRIAÇÃO DO OBJETO

    <asp:FileUpload ID="fuAnexarArquivo" runat="server" BackColor="transparent" BorderColor="Transparent" />

    CÓDIGO

    string caminho = @"nome_pasta/nome_arquivo";
    
    fuAnexarArquivo.SaveAs(caminho);

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    sexta-feira, 26 de dezembro de 2014 10:46
  • Obrigado de +++++++++++++++ é assim mesmo que eu quero fazer, mas você saberia me dizer como faço para todas as imagens anexadas ficarem do tamanho 48x48 no richTextBox. Obrigado!!!!!

    Me ajudou muitto :D

    sexta-feira, 26 de dezembro de 2014 23:16
  • Claro.... tenta assim:

            private void button1_Click(object sender, EventArgs e)
            {
                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();
    
                if (System.IO.File.Exists(file.FileName))
                {
                    Bitmap img = new Bitmap(file.FileName);
                    img = (Bitmap)bmpResize(img, new System.Drawing.Size(48, 48));
                    Clipboard.SetImage(img);
                    richTextBox1.Paste();
                }
    
            }
    
            public static Image bmpResize(Image image, Size size)
            {
                return (Image)(new Bitmap(image, size));
            }


    Natan


    • Editado 'Natan Silva sábado, 27 de dezembro de 2014 00:32
    • Marcado como Resposta MichaelKeller sábado, 27 de dezembro de 2014 23:24
    sábado, 27 de dezembro de 2014 00:32
  • Realmente estou muito feliz você é fantástico, pena que não intendo muito bem c# mas estou tentando entender ainda. mas muito obrigado mesmo pela ajuda e pelo código!
    sábado, 27 de dezembro de 2014 23:41