private void btnCutter_Click(object sender, EventArgs e) { // 新建一个和屏幕大小相同的图片 Bitmap CatchBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height); // 创建一个画板,让我们可以在画板上画图 // 这个画板也就是和屏幕大小一样大的图片 // 我们可以通过Graphics这个类在这个空白图片上画图 Graphics g = Graphics.FromImage(CatchBmp); // 把屏幕图片拷贝到我们创建的空白图片 CatchBmp中 g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height)); // 创建截图窗体 cutter = new Cutter(); // 指示窗体的背景图片为屏幕图片 cutter.BackgroundImage = CatchBmp; // 显示窗体 //cutter.Show(); // 如果Cutter窗体结束,则从剪切板获得截取的图片,并显示在聊天窗体的发送框中 if (cutter.ShowDialog() == DialogResult.OK) { IDataObject iData = Clipboard.GetDataObject(); DataFormats.Format format = DataFormats.GetFormat(DataFormats.Bitmap); if (iData.GetDataPresent(DataFormats.Bitmap)) { WriteRichTextBox.Paste(format); // 清楚剪贴板的图片 // Clipboard.Clear(); } } }
private void SendButton_Click_1(object sender, EventArgs e) { FormMain formMain = SystemConfiguration.FormMain; Reports report = formMain.GetSelectedReport(); //CloudDiagnosis.Entity.Reports report = formMain.GetSelectedReport(); if (report.Report_ID != 0) { if (!report.IsAudited) { this.ReadRichTextBox.Clear(); MessageBox.Show("该报表还没有经过医生审核,不能发起讨论!", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Consultation cs = new Consultation();//创建对象 try { this.ReadRichTextBox.SelectionStart = ReadRichTextBox.Text.Length; this.ReadRichTextBox.ScrollToCaret(); this.ReadRichTextBox.SelectionAlignment = HorizontalAlignment.Right; //改变文本排列方式右对齐 //发送信息, //if (this.WriteRichTextBox.Text != ""||WriteRichTextBox.Rtf.IndexOf((@"{\pict\"))>-1) if (!string.IsNullOrWhiteSpace(WriteRichTextBox.Text) || WriteRichTextBox.Rtf.IndexOf((@"{\pict\")) > -1) //判断发送框中是否有东西 { //ReadRichTextBox.ReadOnly = false; //string left = this.ReadRichTextBox.SelectionAlignment.ToString(); // if (this.ReadRichTextBox.Text != "") // { this.ReadRichTextBox.SelectionStart = ReadRichTextBox.Text.Length; this.ReadRichTextBox.ScrollToCaret(); this.ReadRichTextBox.SelectionAlignment = HorizontalAlignment.Right; //改变文本排列方式右对齐 if (!string.IsNullOrWhiteSpace(WriteRichTextBox.Text)) //判断发送框中是否有文字 { this.ReadRichTextBox.SelectionStart = ReadRichTextBox.Text.Length; this.ReadRichTextBox.ScrollToCaret(); Font font1 = new Font(FontFamily.GenericMonospace, 16, FontStyle.Regular); ReadRichTextBox.SelectionFont = font1; ReadRichTextBox.SelectionColor = Color.Blue; this.ReadRichTextBox.AppendText(SystemConfiguration.LoginUser.UserName + " " + DateTime.Now.ToString() + "\n"); //this.ReadRichTextBox.Text = this.ReadRichTextBox.Text + "\r\n"; Font font2 = new Font(FontFamily.GenericMonospace, 24, FontStyle.Regular); ReadRichTextBox.SelectionFont = font2; ReadRichTextBox.SelectionColor = Color.Red; this.ReadRichTextBox.AppendText(this.WriteRichTextBox.Text + "\n"); } else { //this.ReadRichTextBox.SelectionStart = ReadRichTextBox.Text.Length; //this.ReadRichTextBox.ScrollToCaret(); ReadRichTextBox.SelectionColor = Color.Blue; Font font1 = new Font(FontFamily.GenericMonospace, 16, FontStyle.Regular); ReadRichTextBox.SelectionFont = font1; this.ReadRichTextBox.AppendText(SystemConfiguration.LoginUser.UserName + " " + DateTime.Now.ToString() + "\n"); //this.ReadRichTextBox.Text = this.ReadRichTextBox.Text + "\r\n"; } //发送图片 PictureBox pb = new PictureBox(); pb.Image = null; pb.Image = Clipboard.GetImage(); if (pb.Image != null) { pb.Image.Save("8.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); //pb.Image.Save("C:/2/7.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); pb.Image.Dispose(); pb.Dispose(); Clipboard.Clear(); byte[] buffer = getBytes("8.jpg"); //转为二进制 //byte[] buffer = getBytes("C:/2/7.jpg");//转为二进制 MemoryStream ms = new MemoryStream(buffer); //显示图片 //pictureBox1.Image =System.Drawing. Image.FromStream(ms); Bitmap bmp = new Bitmap(ms); // PictureBox pb = new PictureBox(); // pb.Image = System.Drawing.Image.FromStream(ms); //this.ReadRichTextBox.Controls.Add(pb); //pictureBox1.Image =System.Drawing. Image.FromStream(ms); //ReadRichTextBox.AppendText(System.Drawing.Image.FromStream(ms).ToString()); Clipboard.SetDataObject(bmp, false); ReadRichTextBox.Paste(); ReadRichTextBox.AppendText("\n"); // this.ReadRichTextBox.Text = this.ReadRichTextBox.Text + SystemConfiguration.LoginUser.UserName + " " + DateTime.Now.ToString() + "\r\n"; //this.ReadRichTextBox.Text = this.ReadRichTextBox.Text + this.WriteRichTextBox.Text; // this.ReadRichTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No; //this.ReadRichTextBox.SelectionAlignment = HorizontalAlignment.Left; // } // else // { // this.ReadRichTextBox(); // this.ReadRichTextBox.Text = SystemConfiguration.LoginUser.UserName+ " " + DateTime.Now.ToString() + "\r\n" + this.WriteRichTextBox.Text; //this.ReadRichTextBox.SelectionAlignment = HorizontalAlignment.Left; // } //信息封装成一个对象 //decimal readbox = 1; cs.Content = SystemConfiguration.LoginUser.UserName + " " + DateTime.Now.ToString() + "\r\n" + this.WriteRichTextBox.Text; cs.SenderID = SystemConfiguration.LoginUser.User_ID; cs.Report_ID = report.Report_ID; cs.ReceiverID = Convert.ToDecimal(report.User_ID); cs.images = Convert.ToBase64String(buffer); // list.Add(cs); string jsondata = JsonConvert.SerializeObject(cs); //string read = (string)readbox; ClientCloudEyesServer.CloudEyesSoapClient serviceClient = new ClientCloudEyesServer.CloudEyesSoapClient("CloudEyesSoap"); bool jsonResult = serviceClient.SendMessage(jsondata); } else { cs.Content = SystemConfiguration.LoginUser.UserName + " " + DateTime.Now.ToString() + "\r\n" + this.WriteRichTextBox.Text; cs.SenderID = SystemConfiguration.LoginUser.User_ID; cs.Report_ID = report.Report_ID; cs.ReceiverID = Convert.ToDecimal(report.User_ID); cs.images = ""; string jsondata = JsonConvert.SerializeObject(cs); //string read = (string)readbox; ClientCloudEyesServer.CloudEyesSoapClient serviceClient = new ClientCloudEyesServer.CloudEyesSoapClient("CloudEyesSoap"); bool jsonResult = serviceClient.SendMessage(jsondata); } //把集合放入json中 //反序列化对象 // JavaScriptSerializer js = new JavaScriptSerializer(); // Consultation consultation = js.Deserialize<Consultation>(jsonResult.ToString()); ReadRichTextBox.SelectionStart = ReadRichTextBox.Text.Length; //Set the current caret position at the end ReadRichTextBox.ScrollToCaret(); Clipboard.Clear(); this.WriteRichTextBox.Clear(); } else { MessageBox.Show("无消息发不出"); } //ReadRichTextBox.ReadOnly = true; WriteRichTextBox.Focus(); } catch (Exception ex) { throw (ex); } } }