Exemple #1
0
        /// <summary>
        /// 切换当前信区
        /// </summary>
        /// <param name="iIndex"></param>
        private void ChangeCurrentAreaTo(int iIndex)
        {
            if (this.iCurrentArea == iIndex)
            {
                return;
            }

            if (this.lvArea.Items.Count <= iIndex)
            {
                return;
            }

            if (this.lvArea.Items[iIndex].Tag == null)
            {
                return;
            }

            // 更新查找书签
            this.iFindRecord  = 0;
            this.iFindArea    = iIndex;
            this.iCurrentArea = iIndex;

            // 滚动LIST
            this.lvArea.SelectedItems.Clear();
            this.lvArea.Items[iIndex].Selected = true;
            this.lvArea.EnsureVisible(this.iCurrentArea);

            this.Cursor = Cursors.WaitCursor;
            this.lvMail.Items.Clear();
            MailArea m = (MailArea)this.lvArea.Items[iIndex].Tag;

            this.arCurrentMails = m.LoadMails();

            if (this.arCurrentMails == null || this.arCurrentMails.Length == 0)
            {
                ListViewItem lvi = this.lvMail.Items.Add("空信区");
                this.Cursor = Cursors.Default;
                return;
            }

            for (int i = 0; i < this.arCurrentMails.Length; i++)
            {
                JamMail      jm  = this.arCurrentMails[i];
                ListViewItem lvi = this.lvMail.Items.Add(jm.sFrom);
                lvi.SubItems.Add(jm.sTo);
                lvi.SubItems.Add(jm.sSubject);
                lvi.SubItems.Add(jm.uSize.ToString("#,0"));
                lvi.SubItems.Add(jm.dtSendTime.ToString());
                lvi.SubItems.Add(jm.dtReciveTime.ToString());
                lvi.Tag = jm;
            }
            this.Cursor = Cursors.Default;
        }
Exemple #2
0
        private void mnFindNext_Click(object sender, System.EventArgs e)
        {
            string sFindText = this.frmFind.txtFindText.Text;

            if (this.frmFind.chkNoCase.Checked)
            {
                sFindText = sFindText.ToLower();
            }
            bool bFound = false;
            int  i = 0, j;
            int  iEndArea = this.frmFind.chkAllArea.Checked ?
                            this.lvArea.Items.Count - 1: this.iFindArea;

            for (j = this.iFindArea; j < iEndArea; j++)
            {
                MailArea m = (MailArea)this.lvArea.Items[j].Tag;

                JamMail [] jms;
                // 如果是当前信区,那么不需要再读文件了.
                if (this.iCurrentArea != j)
                {
                    jms = m.LoadMails();
                }
                else
                {
                    jms = this.arCurrentMails;
                }
                if (jms == null)
                {
                    continue;
                }

                #region look up a mail in a area
                for (i = this.iFindRecord; i < jms.Length; i++)
                {
                    JamMail jm = (JamMail)jms[i];
                    bFound = jm.FindText(
                        this.frmFind.txtFindText.Text,
                        this.frmFind.chkFrom.Checked,
                        this.frmFind.chkTo.Checked,
                        this.frmFind.chkSubject.Checked,
                        this.frmFind.chkContent.Checked,
                        this.frmFind.chkNoCase.Checked,
                        false
                        );
                    if (bFound)
                    {
                        // 找到了.
                        break;
                    }
                }
                if (bFound)
                {
                    break;
                }
                else
                {
                    // 从下个区的开始找.
                    this.iFindRecord = 0;
                }

                #endregion
            }
            if (!bFound)
            {
                MessageBox.Show("没有了.");
                return;
            }
            // 要切换到找到的信区和信里.
            if (j != this.iCurrentArea)
            {
                //不是当前区,要切换到J信区里
                this.ChangeCurrentAreaTo(j);
            }
            this.lvMail.SelectedItems.Clear();
            this.lvMail.Items[i].Selected = true;
            this.ShowCurrentMail();
            this.lvMail.Items[i].EnsureVisible();
            this.txtContent.Focus();
        }