public void bindData(int page = 0, int size = 20, string q = "") { this.labelLoading.Text = "正在加载。。。"; try { Response res = new Response(); System.Collections.Generic.List<Artifact.Api.Message> messages = res.MessageList(0, page, size, q); if (messages != null) { Extra extra = (Extra)JsonConvert.DeserializeObject(res.extra.ToString(), typeof(Extra)); this.pageCount = extra.pages; this.pageCurrent = extra.page; this.pageSize = extra.size; this.totalRecord = extra.total; this.messageBindingSource.DataSource = messages; } this.textBoxPage.Text = (this.pageCurrent + 1).ToString(); this.labelTotalPage.Text = "/" + this.pageCount.ToString(); //有下一页 if (this.pageCurrent > 0) { this.buttonFirst.Enabled = true; this.buttonPre.Enabled = true; } else { this.buttonFirst.Enabled = false; this.buttonPre.Enabled = false; } if (this.pageCount > (this.pageCurrent + 1)) { this.buttonNext.Enabled = true; this.buttonLast.Enabled = true; } else //无下一页 { this.buttonNext.Enabled = false; this.buttonLast.Enabled = false; } } catch (Exception ) { //MessageBox.Show("获取信息出错!" + ex.Message); } this.labelLoading.Text = ""; }
/// <summary> /// 获取信息并显示 /// </summary> /// <param name="size">获取条数</param> private void setMessage(int size=10) { try { this.richTextBoxMessageList.Select(this.richTextBoxMessageList.TextLength, 0); Response res = new Response(); System.Collections.Generic.List<Artifact.Api.Message> messages = res.MessageList(this.maxId,0, size); if (messages != null) { foreach (Artifact.Api.Message message in messages) { this.richTextBoxMessageList.AppendText(message.message_time + "\n" + message.message_text + "\n\n"); if (this.maxId < Int32.Parse(message.message_id)) this.maxId = Int32.Parse(message.message_id); } Regex regImg = new Regex(@"(?i)<img\b[^>]*?src\s*=(['""]?)(?<imgUrl>[^'""]+)\1[^>]*?>"); MatchCollection matches = regImg.Matches(this.richTextBoxMessageList.Text); string[] sUrlList = new string[matches.Count]; foreach (Match match in matches) { string url = @match.Groups["imgUrl"].Value; Bitmap bmp = new Bitmap((new System.Net.WebClient()).OpenRead(url)); Clipboard.SetImage(bmp); string src = "<img src='" + url + "' />"; int pos = this.richTextBoxMessageList.Find(src); this.richTextBoxMessageList.Select(pos, src.Length); this.richTextBoxMessageList.Paste(); this.richTextBoxMessageList.Refresh(); Clipboard.Clear(); } //让文本框获取焦点 this.richTextBoxMessageList.Focus(); //设置光标的位置到文本尾 this.richTextBoxMessageList.Select(this.richTextBoxMessageList.TextLength, 0); //滚动到控件光标处 this.richTextBoxMessageList.ScrollToCaret(); if (this.WindowState == FormWindowState.Minimized) this.WindowState = FormWindowState.Normal; String wav = @"msg.wav"; if (System.IO.File.Exists(wav)) { System.Media.SoundPlayer sp = new System.Media.SoundPlayer(wav); sp.Play(); } } } catch (Exception ) { //MessageBox.Show("登录过期!" + ex.Message); } }