private void TimeLine_Load(object sender, EventArgs e) { int index = 0; DataGridViewImageColumn status = new DataGridViewImageColumn(); status.Name = "image"; status.HeaderText = "图片"; status.Width = 150; dataGridView1.Columns.Insert(2, status); int a = 0; ImageOP imageOP = new ImageOP(); MessageDAO messageDAO = new MessageDAO(new Database(Program.constr)); List <MixMsg> arrayList = messageDAO.GetData(); int i = 0; while (i < arrayList.Count && a < 5) { index = this.dataGridView1.Rows.Add(); MixMsg mx = arrayList[i]; this.dataGridView1.Rows[index].Cells[0].Value = mx.Account; this.dataGridView1.Rows[index].Cells[1].Value = mx.Information; this.dataGridView1.Rows[index].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[index].Cells[3].Value = mx.Time; i++; a++; } row = a; lastn = a; dataGridView1.AllowUserToAddRows = false; }
private void TimeLine_Load(object sender, EventArgs e) { int index = 0; DataGridViewImageColumn status = new DataGridViewImageColumn(); status.Name = "image"; status.HeaderText = "图片"; status.Width = 150; dataGridView1.Columns.Insert(2, status); int a = 0; ImageOP imageOP = new ImageOP(); Database database = new Database(Program.constr); MessageDAO messageDAO = new MessageDAO(database); string command = "select account,information,image,time from infos natural join users order by time desc"; IDataReader reader = database.GetReader(command); List <MixMsg> arrayList = messageDAO.GetData(reader); int i = 0; while (i < arrayList.Count && a < 5) { index = this.dataGridView1.Rows.Add(); MixMsg mx = arrayList[i]; this.dataGridView1.Rows[index].Cells[0].Value = mx.Account; this.dataGridView1.Rows[index].Cells[1].Value = mx.Information; this.dataGridView1.Rows[index].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[index].Cells[3].Value = mx.Time; i++; a++; } row = a; lastn = a; dataGridView1.AllowUserToAddRows = false; }
public void GetDataTest() { var arrayList = new List <MixMsg>(); MixMsg one = new MixMsg(); MixMsg two = new MixMsg(); MixMsg three = new MixMsg(); arrayList.Add(one); arrayList.Add(two); arrayList.Add(three); int count = 0; var mockdb = new Mock <IDatabase>(); var messagedao = new MessageDAO(mockdb.Object); var mockDatareader = new Mock <IDataReader>(); mockDatareader.Setup(d => d.Read()).Returns(() => count < 3).Callback(() => count++); mockDatareader.Setup(r => r["user_id"]).Returns(() => arrayList[count - 1].Account); mockDatareader.Setup(r => r["information"]).Returns(() => arrayList[count - 1].Information); mockDatareader.Setup(r => r["image"]).Returns(() => arrayList[count - 1].Image); mockDatareader.Setup(r => r["time"]).Returns(() => arrayList[count - 1].Time); for (int i = 0; i < 3; i++) { //Assert.AreEqual(arrayList[i].Account, messagedao.GetData(mockDatareader.Object)[i].Account); } }
public List <MixMsg> GetData(IDataReader reader) { List <MixMsg> arrayList = new List <MixMsg>(); //string command = "select account,information,image,time from infos natural join users order by time desc"; //reader = mydatabase.GetReader(command); while (reader.Read()) { MixMsg mixMsg = new MixMsg(); mixMsg.Account = Convert.ToString(reader[0]); mixMsg.Information = Convert.ToString(reader[1]); if (Convert.ToString(reader[2]) == "") { mixMsg.Image = Application.StartupPath + "\\image\\" + "nothing.png"; } else { mixMsg.Image = Application.StartupPath + "\\image\\" + Convert.ToString(reader[2]); } string time = Convert.ToString(reader[3]); DateTime date1 = DateTime.Parse(time); //DateTime date1 = DateTime.Now; DateTime date2 = DateTime.Now; TimeSpan ts = date2.Subtract(date1); if (ts.TotalMinutes < 60) { int a = Convert.ToInt32(ts.TotalMinutes); mixMsg.Time = Convert.ToString(a) + "分钟前"; } else { int a = (int)ts.TotalMinutes / 60; mixMsg.Time = Convert.ToString(a) + "小时前"; } arrayList.Add(mixMsg); } mydatabase.CloseDb(); reader.Close(); return(arrayList); }
private void buttonUpdate_Click(object sender, EventArgs e) { ImageOP imageOP = new ImageOP(); MessageDAO messageDAO = new MessageDAO(new Database(Program.constr)); List <MixMsg> arrayList = messageDAO.GetData(); int n = arrayList.Count(); if (n == row) { return; } else if (n == lastn) { return; } else if (n > lastn && n <= 5) { for (int a = lastn; a < n; a++) { this.dataGridView1.Rows.Add(); } int i = 0; while (i < arrayList.Count) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; } lastn = n; } else if (n > 5 && lastn < 5) { for (int a = lastn; a < 5; a++) { this.dataGridView1.Rows.Add(); } int i = 0; while (i < arrayList.Count && i < 5) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; } lastn = n; } else { int i = 0; int a = 0; while (i < arrayList.Count && a < 5) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; a++; } } dataGridView1.AllowUserToAddRows = false; }
public void SetUp() { mixMsg = new MixMsg(); }
private void buttonUpdate_Click(object sender, EventArgs e) { ImageOP imageOP = new ImageOP(); Database database = new Database(Program.constr); MessageDAO messageDAO = new MessageDAO(database); string command = "select account,information,image,time from infos natural join users order by time desc"; IDataReader reader = database.GetReader(command); List <MixMsg> arrayList = messageDAO.GetData(reader); int n = arrayList.Count(); if (n == row) { return; } else if (n == lastn) { return; } else if (n > lastn && n <= 5) { for (int a = lastn; a < n; a++) { this.dataGridView1.Rows.Add(); } int i = 0; while (i < arrayList.Count) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; } lastn = n; } else if (n > 5 && lastn < 5) { for (int a = lastn; a < 5; a++) { this.dataGridView1.Rows.Add(); } int i = 0; while (i < arrayList.Count && i < 5) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; } lastn = n; } else { int i = 0; int a = 0; while (i < arrayList.Count && a < 5) { MixMsg mx = arrayList[i]; this.dataGridView1.Rows[i].Cells[0].Value = mx.Account; this.dataGridView1.Rows[i].Cells[1].Value = mx.Information; this.dataGridView1.Rows[i].Cells[2].Value = imageOP.GetImageByPath(mx.Image); this.dataGridView1.Rows[i].Cells[3].Value = mx.Time; i++; a++; } } dataGridView1.AllowUserToAddRows = false; }
public static void RightSendPicAndTextMix(ChromiumWebBrowser cef, string messageId, List <MixMessageObjDto> obj, MessageStateArg arg, MixMsg mixMsgClass) { #region 图文混合Right StringBuilder sbRight = new StringBuilder(); sbRight.AppendLine("function myFunction()"); sbRight.AppendLine("{ var first=document.createElement('div');"); sbRight.AppendLine("first.className='rightd';"); sbRight.AppendLine("first.id='" + messageId + "';"); //时间显示层 sbRight.AppendLine("var timeDiv=document.createElement('div');"); sbRight.AppendLine("timeDiv.className='rightTimeStyle';"); sbRight.AppendLine("timeDiv.innerHTML='" + DateTime.Now.ToString("HH:mm:ss") + "';"); sbRight.AppendLine("first.appendChild(timeDiv);"); //头像显示层 sbRight.AppendLine("var second=document.createElement('div');"); sbRight.AppendLine("second.className='rightimg';"); sbRight.AppendLine("var img = document.createElement('img');"); sbRight.AppendLine("img.src='" + PictureAndTextMixMethod.HeadImgUrl() + "';"); sbRight.AppendLine("img.className='divcss5';"); sbRight.AppendLine("second.appendChild(img);"); sbRight.AppendLine("first.appendChild(second);"); //图文混合展示层 string divid = "copy" + Guid.NewGuid().ToString().Replace("-", ""); sbRight.AppendLine(PublicTalkMothed.divRightCopyContent(divid, messageId)); sbRight.AppendLine("node.id='" + divid + "';"); //sbRight.AppendLine("var node = document.createElement('div')"); sbRight.AppendLine("node.className='speech right';"); //图文混合内部构造 StringBuilder sbInside = new StringBuilder(); int i = 0; foreach (var list in obj) { //var type = list as MixMessageBase; switch (list.type) { //文本 case "1001": //var text = list as MixMessageDto; sbInside.Append(PublicTalkMothed.talkContentReplace(list.content?.ToString())); break; //图片 case "1002": //var images = list as MixMessageDto; var contentImg = JsonConvert.DeserializeObject <PictureDto>(list.content.ToString()); sbInside.Append("<img id=\"" + mixMsgClass.TagDto[i].PreGuid + "\" src=\"" + contentImg.picUrl + "\" class=\"imgRightProportion\" onload=\"scrollToend(event)\" ondblclick=\"myFunctions(event)\"/>"); i++; break; //换行 case "0000": sbInside.Append("<br/>"); break; } } sbRight.AppendLine("node.innerHTML ='" + sbInside.ToString() + "';"); sbRight.AppendLine("first.appendChild(node);"); //重发div //sbRight.AppendLine(OnceSendMsgDiv("sendText", arg.MessageId, sendStr, imageTipId, imageSendingId, msgStr, "")); sbRight.AppendLine(PictureAndTextMixMethod.OnceSendMixPicDiv("sendMixPic", arg.MessageId, "", arg.RepeatId, arg.SendIngId, "", "")); sbRight.AppendLine("document.body.appendChild(first);"); sbRight.AppendLine("}"); sbRight.AppendLine("myFunction();"); cef.ExecuteScriptAsync(sbRight.ToString()); #endregion }
//多文件上传方法 public async void MultiFileHttpClientUpLoad(AntSdkMsgType antSdkMsgType, CurrentChatDto currentChat, MessageStateArg arg, MixMsg mixMsg, List <MixMessageObjDto> obj) { try { var url = AntSdkService.AntSdkConfigInfo.AntSdkMultiFileUpload; HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("user-agent", "User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; MALNJS; rv:11.0) like Gecko"); HttpResponseMessage response; MultipartFormDataContent mulContent = new MultipartFormDataContent(); foreach (var list in mixMsg.TagDto) { FileStream fs = new FileStream(@list.Path, FileMode.Open, FileAccess.Read, FileShare.Read); HttpContent fileContent = new StreamContent(fs); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); int pos = list.Path.LastIndexOf("/"); if (pos == -1) { pos = list.Path.LastIndexOf("\\"); } string fileName = list.Path.Substring(pos + 1); mulContent.Add(fileContent, list.PreGuid, fileName); } string result = ""; if (mixMsg.TagDto.Count() > 0) { response = await client.PostAsync(new Uri(url), mulContent); //var code = response.EnsureSuccessStatusCode(); result = await response.Content.ReadAsStringAsync(); } else { result = JsonConvert.SerializeObject(new BaseMultiDto() { errorCode = "0", errorMsg = "", data = null }); } if (!string.IsNullOrEmpty(result)) { BaseMultiDto baseMultiDto = JsonConvert.DeserializeObject <BaseMultiDto>(result); if (baseMultiDto.errorCode == "0") { string JsonContent = ""; string mixError = ""; bool isResult = false; int i = 0; if (mixMsg.TagDto.Count() > 0) { foreach (var list in obj) { //var type = list as MixMessageBase; switch (list.type) { case "1002": //var picDto = list as MixMessageDto; PictureDto pic = JsonConvert.DeserializeObject <PictureDto>(list.content?.ToString()); list.content = JsonConvert.SerializeObject(new PictureDto() { width = "50", height = "50", picUrl = baseMultiDto.data[i].dowmnloadUrl }); i++; break; } } } #region New List <MixMessage_content> ListMixMsg = new List <MixMessage_content>(); AntSdkChatMsg.MixMessage mixImageText = new AntSdkChatMsg.MixMessage(); foreach (var list in obj) { MixMessage_content message_Content = new MixMessage_content(); //var type = list as MixMessageBase; switch (list.type) { case "1001": //var text = list as MixMessageDto; message_Content.type = list.type; message_Content.content = list.content; break; case "1002": //var picDto = list as MixMessageDto; message_Content.type = list.type; message_Content.content = list.content; break; case "1008": //var at = list as MixMessageObjDto; if (currentChat.isOnceSend) { message_Content.type = list.type; message_Content.content = list.content; } else { List <object> listObj = new List <object>(); message_Content.type = list.type; listObj.Add(list.content); message_Content.content = listObj; } break; //换行 case "0000": message_Content.type = list.type; message_Content.content = ""; break; } ListMixMsg.Add(message_Content); } mixImageText.content = ListMixMsg;; mixImageText.MsgType = AntSdkMsgType.ChatMsgMixMessage; mixImageText.messageId = currentChat.messageId; mixImageText.flag = 0; mixImageText.sendUserId = currentChat.sendUserId; mixImageText.sessionId = currentChat.sessionId; mixImageText.targetId = currentChat.targetId; mixImageText.chatType = (int)currentChat.type; mixImageText.os = (int)GlobalVariable.OSType.PC; if (currentChat.type == AntSdkchatType.Point) { //消息监控 var IsHave = SendMsgListPointMonitor.MessageStateMonitorList.SingleOrDefault(m => m.dispatcherTimer.arg.MessageId == arg.MessageId); if (IsHave != null) { SendMsgListPointMonitor.MessageStateMonitorList.Remove(IsHave); } if (SendMsgListPointMonitor.MsgIdAndImgSendingId.ContainsKey(arg.MessageId)) { SendMsgListPointMonitor.MsgIdAndImgSendingId[arg.MessageId] = arg.SendIngId; } else { SendMsgListPointMonitor.MsgIdAndImgSendingId.Add(arg.MessageId, arg.SendIngId); } SendMsgListPointMonitor.MessageStateMonitorList.Add(new SendMsgStateMonitor(arg)); } else { //消息监控 var IsHave = SendMsgListMonitor.MessageStateMonitorList.SingleOrDefault(m => m.dispatcherTimer.arg.MessageId == arg.MessageId); if (IsHave != null) { SendMsgListMonitor.MessageStateMonitorList.Remove(IsHave); } if (SendMsgListMonitor.MsgIdAndImgSendingId.ContainsKey(arg.MessageId)) { SendMsgListMonitor.MsgIdAndImgSendingId[arg.MessageId] = arg.SendIngId; } else { SendMsgListMonitor.MsgIdAndImgSendingId.Add(arg.MessageId, arg.SendIngId); } SendMsgListMonitor.MessageStateMonitorList.Add(new SendMsgStateMonitor(arg)); } //发送 if (currentChat.isOnceSend) { isResult = AntSdkService.SdkRePublishChatMsg(mixImageText, ref mixError); } else { isResult = AntSdkService.SdkPublishChatMsg(mixImageText, ref mixError); //if (mixMsg.TagDto.Count() == 0) //{ // #region 滚动条置底 // arg.WebBrowser.GetMainFrame().ExecuteJavaScriptAsync("setscross();"); // #endregion //} } #endregion #region old //if (antSdkMsgType == AntSdkMsgType.ChatMsgMixImageText) //{ //AntSdkChatMsg.MixImageText mixImageText = new AntSdkChatMsg.MixImageText(); //List<AntSdkChatMsg.MixImageText_content> imageText_Content = new List<AntSdkChatMsg.MixImageText_content>(); //mixImageText.messageId = currentChat.messageId; //foreach (var lists in picAndTxtMix) //{ // if (lists.type == PictureAndTextMixEnum.Image) // { // imageText_Content.Add(new AntSdkChatMsg.MixImageText_content() // { // type = (Convert.ToInt32(lists.type).ToString()) == "0" ? "0000" : Convert.ToInt32(lists.type).ToString(), // content = JsonConvert.SerializeObject(new // PictureAndTextMixContentDto // { picUrl = lists.content }) // }); // } // else // { // imageText_Content.Add(new AntSdkChatMsg.MixImageText_content() // { // type = (Convert.ToInt32(lists.type).ToString()) == "0" ? "0000" : Convert.ToInt32(lists.type).ToString(), // content = lists.content // }); // } //} //JsonContent = JsonConvert.SerializeObject(imageText_Content); //mixImageText.content = imageText_Content; //mixImageText.MsgType = AntSdkMsgType.ChatMsgMixImageText; //mixImageText.flag = 0; //mixImageText.sendUserId = currentChat.sendUserId; //mixImageText.sessionId = currentChat.sessionId; //mixImageText.targetId = currentChat.targetId; //mixImageText.chatType = (int)currentChat.type; //mixImageText.os = (int)GlobalVariable.OSType.PC; // if (currentChat.type == AntSdkchatType.Point) // { // //消息监控 // var IsHave = SendMsgListPointMonitor.MessageStateMonitorList.SingleOrDefault(m => m.dispatcherTimer.arg.MessageId == arg.MessageId); // if (IsHave != null) // { // SendMsgListPointMonitor.MessageStateMonitorList.Remove(IsHave); // } // if (SendMsgListPointMonitor.MsgIdAndImgSendingId.ContainsKey(arg.MessageId)) // { // SendMsgListPointMonitor.MsgIdAndImgSendingId[arg.MessageId] = arg.SendIngId; // } // else // { // SendMsgListPointMonitor.MsgIdAndImgSendingId.Add(arg.MessageId, arg.SendIngId); // } // SendMsgListPointMonitor.MessageStateMonitorList.Add(new SendMsgStateMonitor(arg)); // } // else // { // //消息监控 // var IsHave = SendMsgListMonitor.MessageStateMonitorList.SingleOrDefault(m => m.dispatcherTimer.arg.MessageId == arg.MessageId); // if (IsHave != null) // { // SendMsgListMonitor.MessageStateMonitorList.Remove(IsHave); // } // if (SendMsgListMonitor.MsgIdAndImgSendingId.ContainsKey(arg.MessageId)) // { // SendMsgListMonitor.MsgIdAndImgSendingId[arg.MessageId] = arg.SendIngId; // } // else // { // SendMsgListMonitor.MsgIdAndImgSendingId.Add(arg.MessageId, arg.SendIngId); // } // SendMsgListMonitor.MessageStateMonitorList.Add(new SendMsgStateMonitor(arg)); // } // //发送 // if (currentChat.isOnceSend) // { // isResult = AntSdkService.SdkRePublishChatMsg(mixImageText, ref mixError); // } // else // { // isResult = AntSdkService.SdkPublishChatMsg(mixImageText, ref mixError); // #region 滚动条置底 // StringBuilder sbEnd = new StringBuilder(); // sbEnd.AppendLine("setscross();"); // arg.WebBrowser.ExecuteScriptAsync(sbEnd.ToString()); // #endregion // } //} //else //{ // At at = new At(); // List<At_content> atContent = new List<At_content>(); // at.messageId = currentChat.messageId; // foreach (var lists in picAndTxtMix) // { // switch (lists.type) // { // case PictureAndTextMixEnum.Text: // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString(), // content = lists.content // }); // break; // case PictureAndTextMixEnum.Image: // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString(), // content = JsonConvert.SerializeObject(new // PictureAndTextMixContentDto // { picUrl = lists.content }) // }); // break; // case PictureAndTextMixEnum.LineBreak: // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString() + "000", // content = lists.content // }); // break; // case PictureAndTextMixEnum.AtAll: // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString(), // }); // break; // case PictureAndTextMixEnum.AtPerson: // var person = lists.obj as AntSdkChatMsg.contentAtOrdinary; // if (person == null) // { // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString(), // ids = lists.ids, // names = lists.names // }); // } // else // { // atContent.Add(new At_content() // { // type = Convert.ToInt32(lists.type).ToString(), // ids = person.ids, // names = person.names // }); // } // break; // } // } // JsonContent = JsonConvert.SerializeObject(atContent); // at.sourceContent = JsonContent; // at.MsgType = AntSdkMsgType.ChatMsgAt; // at.flag = 0; // at.sendUserId = currentChat.sendUserId; // at.sessionId = currentChat.sessionId; // at.targetId = currentChat.targetId; // at.chatType = (int)currentChat.type; // at.os = (int)GlobalVariable.OSType.PC; // //消息监控 // var IsHave = SendMsgListMonitor.MessageStateMonitorList.SingleOrDefault(m => m.dispatcherTimer.arg.MessageId == arg.MessageId); // if (IsHave != null) // { // SendMsgListMonitor.MessageStateMonitorList.Remove(IsHave); // } // if (SendMsgListMonitor.MsgIdAndImgSendingId.ContainsKey(arg.MessageId)) // { // SendMsgListMonitor.MsgIdAndImgSendingId[arg.MessageId] = arg.SendIngId; // } // else // { // SendMsgListMonitor.MsgIdAndImgSendingId.Add(arg.MessageId, arg.SendIngId); // } // SendMsgListMonitor.MessageStateMonitorList.Add(new SendMsgStateMonitor(arg)); // //发送 // if (currentChat.isOnceSend) // { // isResult = AntSdkService.SdkRePublishChatMsg(at, ref mixError); // } // else // { // isResult = AntSdkService.SdkPublishChatMsg(at, ref mixError); // #region 滚动条置底 // StringBuilder sbEnd = new StringBuilder(); // sbEnd.AppendLine("setscross();"); // arg.WebBrowser.ExecuteScriptAsync(sbEnd.ToString()); // #endregion // } //} #endregion if (isResult == true) { //更新数据库 if (currentChat.type == AntSdkchatType.Point) { //单聊 T_Chat_MessageDAL t_chat = new T_Chat_MessageDAL(); t_chat.UpdateContent(currentChat.messageId, AntSdkService.AntSdkConfigInfo.AntSdkCompanyCode, AntSdkService.AntSdkCurrentUserInfo.userId, JsonConvert.SerializeObject(ListMixMsg)); } else { //群聊 T_Chat_Message_GroupDAL t_chatGroup = new T_Chat_Message_GroupDAL(); t_chatGroup.UpdateContent(currentChat.messageId, AntSdkService.AntSdkConfigInfo.AntSdkCompanyCode, AntSdkService.AntSdkCurrentUserInfo.userId, JsonConvert.SerializeObject(ListMixMsg)); } } } } else { } } catch (Exception ex) { //隐藏发送状态 PublicTalkMothed.HiddenMsgDiv(arg.WebBrowser, arg.SendIngId); //显示重发按钮 PublicTalkMothed.VisibleMsgDiv(arg.WebBrowser, arg.RepeatId); } }