#region using System; using System.Data; using System.Text; using System.Windows.Forms; using CSFrameworkV5.Business; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Models; #endregion namespace CSFrameworkV5.Library.CommonForms { public delegate void OnReadMessage(int total, int index, DataRow message); public partial class frmPrompt : frmBase { private static frmPrompt _Instance; private bllMessageCenter _BLL; private int _Index; private DataTable _Messages; private OnReadMessage _OnReadMessage; public frmPrompt() { InitializeComponent(); } private void btnClose_Click(object sender, EventArgs e) { Close(); } private void btnNext_Click(object sender, EventArgs e) { if (_Index + 1 <= _Messages.Rows.Count - 1) { _Index++; ShowMessage(_Index); } } private void btnPrior_Click(object sender, EventArgs e) { if (_Index - 1 >= 0) { _Index--; ShowMessage(_Index); } } private void frmPrompt_FormClosed(object sender, FormClosedEventArgs e) { _Instance = null; } private void Init(DataTable message) { _BLL = new bllMessageCenter(); _Index = 0; _Messages = message; lblUserName.Text = Loginer.CurrentUser.AccountName + ", 您好!"; ShowMessage(_Index); } public static void ShowMessage(DataTable message, OnReadMessage onReadMessage) { if (_Instance == null) _Instance = new frmPrompt(); _Instance._OnReadMessage = onReadMessage; _Instance.Init(message); _Instance.Show(); } private void ShowMessage(int index) { try { frmWaitingEx.ShowMe(this); if (_Messages.Rows.Count > 0) { var R = _Messages.Rows[index]; var sender = DataDictCache.GetValue( DataDictCache.Cache.User, tb_MyUser.Account, tb_MyUser.UserName, ConvertEx.ToString(R["SendUser"])); var sb = new StringBuilder(); sb.AppendLine("发送时间:" + ConvertEx.ToDateTimeEx(R["SendTime"]) .ToString("yyyy-MM-dd HH:mm:ss") + " 发送人:" + sender); sb.AppendLine("--------------------------------------"); sb.AppendLine(ConvertEx.ToString(R["Message"])); memoEdit1.Text = sb.ToStringEx(); var i = index + 1; lblIndex.Text = "第" + i.ToStringEx() + "条,共" + _Messages.Rows.Count.ToStringEx() + "条"; if (R["MessageID"] != DBNull.Value) { _BLL.MakeRead(R["MessageID"].ToStringEx(), Loginer.CurrentUser.Account); R["MessageID"] = DBNull.Value; //标记已读 } if (_OnReadMessage != null) _OnReadMessage(_Messages.Rows.Count, _Index, R); } else { memoEdit1.Text = "您没有消息!"; lblIndex.Text = "第0条,共0条"; } } finally { frmWaitingEx.HideMe(this); } } } }