当前位置:编程学习 > C#/ASP.NET >>

Clipboard.SetDataObject调用提示内存不足

  public void showpic(string b)
        {
            Clipboard.SetDataObject(Image.FromFile(b), true);
            //.FromStream(c_filestream)
            this.richTextBox1.Paste();
        
        }

当我使用委托调用showpic()这个方法时,提示内存不足?到底怎么回事啊,求解决办法!!! --------------------编程问答-------------------- 代码帖全点。程序没发现问题。
委托的部分code?
 public void showpic(string b)
  {
       Clipboard.SetDataObject(Image.FromFile(b), true);
       this.richTextBox1.Paste();
    
  }
  
  delegate void del(string b);

     
 private void button2_Click(object sender, EventArgs e)
{
    string path = @"c:\alarm24.png";
    Delegate dela = Delegate.CreateDelegate(typeof(del), this, "showpic");
    dela.DynamicInvoke(new object[] { path });
} --------------------编程问答--------------------  委托
 public delegate void showtext(string a);

private void button2_Click(object sender, EventArgs e)
{

richTextBox1.Invoke(new showtext(showpic), @"C:\Users\ken\Desktop\11.jpg");
} --------------------编程问答-------------------- 我还是贴完整的吧~~主要是在SOCKET通信上出错了
 private void button2_Click(object sender, EventArgs e)
        {
            c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp  );
            FileStream filestream = new FileStream(@"C:\Users\ken\Desktop\11.jpg", FileMode.OpenOrCreate );
            Byte[] picture_c = new Byte[2024];
            

            try
            {
                filestream.Read(picture_c, 0, picture_c.Length - 1);
                c.Connect(IPAddress.Parse("172.16.14.228"), 22222);
                Byte[] sendbyte_c = Encoding.UTF8.GetBytes(textBox2.Text);
                Byte[] recebyte_c = new Byte[1024];
                if (c.Connected)
                {
                    c.Receive(recebyte_c);
                    textBox1.Invoke(new showtext(showtexttext), Encoding.UTF8.GetString(recebyte_c));
                   richTextBox1.Invoke(new showtext(showpic), @"C:\Users\ken\Desktop\11.jpg");
                   
                    //c.Send(sendbyte_c);
                    c.Send(picture_c, picture_c.Length, SocketFlags.None);
                    filestream.Close();
                    c.Close();
                }
            }
            catch (Exception err)
            {
                
              //  MessageBox.Show("请检查服务器是否已监听");
                MessageBox.Show(err.ToString());
            }
        } --------------------编程问答-------------------- 你还是直接调用SetImage方法吧 --------------------编程问答--------------------
引用 4 楼 qldsrx 的回复:
你还是直接调用SetImage方法吧

直接调用可以的话我就不必用委托了 --------------------编程问答-------------------- 自己顶起 --------------------编程问答-------------------- Paste前判断一下试试。 --------------------编程问答-------------------- 初学者,帮顶。在怀疑的地方打断点试试吧 --------------------编程问答--------------------
引用 8 楼 b_duan 的回复:
初学者,帮顶。在怀疑的地方打断点试试吧

我已经知道是在委托那里错了,可是该怎么改 --------------------编程问答-------------------- 我顶啊~~~!!!!为什么会提示内存不足 --------------------编程问答-------------------- 顶顶顶!!!!!!!!!!!!!!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,