--首先新建一个用户控件 该控件包含如下控件
--1:一个刷新Button控件
--2:一个webBrowser1控件
--3:其它可以增加一个状态提示控件等 主要控件为1和 2
--如下图:
--------------------
--------------------
上图就是我们创建的自定义组件 具体的代码如下:
------------------------
using System.Security;
using System.Security.Permissions;
namespace Test
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribut e(true)]
public partial class LawRemindHtml : UserControl
{
public LawRemindHtml()
{
InitializeComponent();
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.ObjectForScripting = this;
}
public void SearchRemind()
{
BuildHtml(CreateDataSet().Tables[0]);
}
private DataSet CreateDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("PrimaryKey", typeof(String));
dt.Columns.Add("A", typeof(String));
dt.Columns.Add("B", typeof(String));
dt.Columns.Add("C", typeof(String));
ds.Tables.Add(dt);
DataRow dr = dt.NewRow();
dr[0] = "PrimaryKey1";
dr[1] = "A1";
dr[2] = "B1";
dr[3] = "C1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "PrimaryKey2";
dr[1] = "A2";
dr[2] = "B2";
dr[3] = "C2";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "PrimaryKey3";
dr[1] = "A3";
dr[2] = "B3";
dr[3] = "C3";
dt.Rows.Add(dr);
return ds;
}
private void BuildHtml(DataTable refTable)
{
string html2 = "ABC";
foreach (DataRow dr in refTable.Rows)
{
html2 = html2 + string.Format("{0}{1}{2}", dr["A"], dr["B"], dr["C"], dr["PrimaryKey"]);
}
if (string.IsNullOrEmpty(html2)) html2 = "";
string html1 = @"
几日内学生学费到期催款列表
";
string html3 = @"
";
string js = @"
var layerHeight = 600; // 定义滚动区域的高度.
var iFrame = 1; // 定义每帧移动的象素.
var iFrequency = 50; // 定义帧频率.
var timer; // 定义时间句柄.
if(document.getElementById('layer2').offsetHeight >= layerHeight)
document.getElementById('layer1').style.height = layerHeight;
else
document.getElementById('layer1').style.height = document.getElementById('layer2').offsetHeight;
document.getElementById('layer3').innerHTML = document.getElementById('layer2').innerHTML;
function move(){
if(document.getElementById('layer1').scrollTop >= document.getElementById('layer2').offsetHeight){
document.getElementById('layer1').scrollTop -= (document.getElementById('layer2').offsetHeight - iFrame);
}
else {
document.getElementById('layer1').scrollTop += iFrame;
}
}
timer = setInterval('move()',iFrequency);
document.getElementById('layer1').οnmοuseοver=func tion() {clearInterval(timer);}
document.getElementById('layer1').οnmοuseοut=funct ion() {timer=setInterval('move()',iFrequency);}
function ShowDetail(saleNo)
{
window.external.SendMessage(saleNo);
}
";
string html4 = @"
";
webBrowser1.DocumentText = html1 + html2 + html3 + js + html4;
}
private void bbtRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
SearchRemind();
}
private void timer1_Tick(object sender, EventArgs e)
{
SearchRemind();
}
public void SendMessage(string refSaleNo)
{
//MessageBox.Show(refSaleNo);
//FrmLawSendPhoneMessage frmSearch = new FrmLawSendPhoneMessage("01");
//frmSearch.ShowDialog();
//frmSearch.Dispose();
}
}
}
-------------------------
在实际的应用中数据的读取要从后台数据库获取。
如何应用呢 如下:
-------------------------------------------------- ------
LawRemindHtml html; //引用用户组件
public TestHtmlUse() ///类TestHtmlUse的够造函数
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
mainform = this;
DockManager dockManager1 = new DockManager(this); //需要引入 DevExpress.XtraBars.Docking命名空间
DockPanel dp = dockManager1.AddPanel(DockingStyle.Left);
//lawRemiand = new LawRemindControl(this);
//lawRemiand.Dock = DockStyle.Fill;
html = new LawRemindHtml();
html.Dock = DockStyle.Fill;
html.Show();
dp.Text = "几日内学生学费到期催款列表";
dp.Width = 300;
dp.Visibility = DockVisibility.AutoHide;
dp.ControlContainer.Controls.Add(html);
//
// TODO: Add any constructor code after InitializeComponent call
//
}
-------------------------------------------------- ---------
大体思路如上,以准备以后修改中用到。
--1:一个刷新Button控件
--2:一个webBrowser1控件
--3:其它可以增加一个状态提示控件等 主要控件为1和 2
--如下图:
--------------------
--------------------
上图就是我们创建的自定义组件 具体的代码如下:
------------------------
using System.Security;
using System.Security.Permissions;
namespace Test
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribut e(true)]
public partial class LawRemindHtml : UserControl
{
public LawRemindHtml()
{
InitializeComponent();
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.ObjectForScripting = this;
}
public void SearchRemind()
{
BuildHtml(CreateDataSet().Tables[0]);
}
private DataSet CreateDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("PrimaryKey", typeof(String));
dt.Columns.Add("A", typeof(String));
dt.Columns.Add("B", typeof(String));
dt.Columns.Add("C", typeof(String));
ds.Tables.Add(dt);
DataRow dr = dt.NewRow();
dr[0] = "PrimaryKey1";
dr[1] = "A1";
dr[2] = "B1";
dr[3] = "C1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "PrimaryKey2";
dr[1] = "A2";
dr[2] = "B2";
dr[3] = "C2";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "PrimaryKey3";
dr[1] = "A3";
dr[2] = "B3";
dr[3] = "C3";
dt.Rows.Add(dr);
return ds;
}
private void BuildHtml(DataTable refTable)
{
string html2 = "ABC";
foreach (DataRow dr in refTable.Rows)
{
html2 = html2 + string.Format("{0}{1}{2}", dr["A"], dr["B"], dr["C"], dr["PrimaryKey"]);
}
if (string.IsNullOrEmpty(html2)) html2 = "";
string html1 = @"
几日内学生学费到期催款列表
";
string html3 = @"
";
string js = @"
var layerHeight = 600; // 定义滚动区域的高度.
var iFrame = 1; // 定义每帧移动的象素.
var iFrequency = 50; // 定义帧频率.
var timer; // 定义时间句柄.
if(document.getElementById('layer2').offsetHeight >= layerHeight)
document.getElementById('layer1').style.height = layerHeight;
else
document.getElementById('layer1').style.height = document.getElementById('layer2').offsetHeight;
document.getElementById('layer3').innerHTML = document.getElementById('layer2').innerHTML;
function move(){
if(document.getElementById('layer1').scrollTop >= document.getElementById('layer2').offsetHeight){
document.getElementById('layer1').scrollTop -= (document.getElementById('layer2').offsetHeight - iFrame);
}
else {
document.getElementById('layer1').scrollTop += iFrame;
}
}
timer = setInterval('move()',iFrequency);
document.getElementById('layer1').οnmοuseοver=func tion() {clearInterval(timer);}
document.getElementById('layer1').οnmοuseοut=funct ion() {timer=setInterval('move()',iFrequency);}
function ShowDetail(saleNo)
{
window.external.SendMessage(saleNo);
}
";
string html4 = @"
";
webBrowser1.DocumentText = html1 + html2 + html3 + js + html4;
}
private void bbtRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
SearchRemind();
}
private void timer1_Tick(object sender, EventArgs e)
{
SearchRemind();
}
public void SendMessage(string refSaleNo)
{
//MessageBox.Show(refSaleNo);
//FrmLawSendPhoneMessage frmSearch = new FrmLawSendPhoneMessage("01");
//frmSearch.ShowDialog();
//frmSearch.Dispose();
}
}
}
-------------------------
在实际的应用中数据的读取要从后台数据库获取。
如何应用呢 如下:
-------------------------------------------------- ------
LawRemindHtml html; //引用用户组件
public TestHtmlUse() ///类TestHtmlUse的够造函数
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
mainform = this;
DockManager dockManager1 = new DockManager(this); //需要引入 DevExpress.XtraBars.Docking命名空间
DockPanel dp = dockManager1.AddPanel(DockingStyle.Left);
//lawRemiand = new LawRemindControl(this);
//lawRemiand.Dock = DockStyle.Fill;
html = new LawRemindHtml();
html.Dock = DockStyle.Fill;
html.Show();
dp.Text = "几日内学生学费到期催款列表";
dp.Width = 300;
dp.Visibility = DockVisibility.AutoHide;
dp.ControlContainer.Controls.Add(html);
//
// TODO: Add any constructor code after InitializeComponent call
//
}
-------------------------------------------------- ---------
大体思路如上,以准备以后修改中用到。