[winform]Use WebBrowser View MailBody

  • 1932
  • 0

摘要:[winform]Use WebBrowser View MailBody

起因:

最近在用Winform讀資料再合併Mail Template存回DB,
Mail內容的格式有好幾種,來源資料的剖析有時又會有錯,
通常要直接看到Mail才知道那邊有問題,
我是debug到一半再把MailBody貼到html檔再來看(MSMS的Grid Result有字數限制)
覺得這樣費時,就想做一個Viewer來看

做法:

首先要找到怎麼呈現MailBody,
後來有找到WebBrowser
用法也很簡單,

            webBrowser1.DocumentText = 
                @"<html><body>Please enter your name:<br/>
                <input type='text' name='userName'/><br/>
                <a href='http://www.microsoft.com'>continue</a></body></html>";

就從DataGridView點選一筆就顯示出來

但是檢查到一半,發現資料量很大,又要一直來回拉ScrollBar,又覺得很煩
就想到一般Mail軟體都有下一筆的功能,所以就再去找,
不過要取得Index容易,要定位就不容易(以往webform的想法),
不過印像中WinForm應該這類操作會有更多屬性可以設,
就找了一下,找到這個FirstDisplayedScrollingRowIndex
可以重設第一筆要看到的Index,

        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows[rowIndex].Selected = false;
            rowIndex = rowIndex + 1;
            webBrowser1.DocumentText = dataGridView1.Rows[rowIndex].Cells["MDBody"].Value.ToString();
            dataGridView1.Rows[rowIndex].Selected = true;
            dataGridView1.FirstDisplayedScrollingRowIndex = rowIndex;
        }

結果:

可以看到MDID已經跳到24043,資料有一萬多筆,大概看了2~30筆就累了,
所以整理一下做個筆記,
這應該很多人都寫過,不過算是我的第一個轉型Winform的程式,紀念一下XD