我正在研究 C# win from。我创建了一个用户控件,它保存 HTML 类型的信息并将其显示在 Web 浏览器控件中(放置在用户控件中的 Web 浏览器控件)所有用户控件都填充了信息并向用户显示为每个请求(按日期和时间)。但我修复了网络浏览器的大小(高度和宽度)。当信息大于网络浏览器时,它应该显示滚动条,以便用户滚动它。这个所有用户控件我都提交了信息并放置在表格面板中。然后表格面板对象引用被提供给其他表格对象(在另一个 C# 项目中)。然后这个表格面板被添加面板控制并显示它。
问题是当用户控件的 web 浏览器控件的大小发生变化时(我在 Document Completed 事件中检查了大小并设置了 web browser.Scroll Bars Enabled = true;)由 web 浏览器保存的信息将不会显示。
以下是我的代码
private void wbContainer_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if ((this.wbContainer.Document.Body.ScrollRectangle.Size.Height > this.wbContainer.Size.Height))
{
this.wbContainer.ScrollBarsEnabled = true;
this.wbContainer.Refresh();
}
}
在表格面板中添加了用户控件
public TableLayoutPanel createInfoSection(string arg_startDateTime, string arg_endDateTime)
{
Control objControl = null;
int Rows = 3;
objTablePageNotes = new TableLayoutPanel();
// Initialized tableLayoutPanel property
objTablePageNotes = setTablePanelProperties(objTablePageNotes);
//returning the collection of html information
InformationCollection objInformationCollection = new InformationCollectionManager().GetInformationCollectionData(arg_startDateTime, arg_endDateTime);
if (objInformationCollection != null)
{
if (objInformationCollection.Count > 0)
{
foreach (InformationList objList in objInformationCollection)
{
//this will return control with filling the html information
objControl =ControlFactory.getControl("InfoTemplate",objList.HtmlInformation);
objControl.Dock = DockStyle.Fill;
objTablePageNotes.SetColumnSpan(objControl, 1);
objTablePageNotes.Controls.Add(objControl, 1, Rows);
objTablePageNotes.ResumeLayout(true);
objTablePageNotes.RowStyles.Clear();
objTablePageNotes.RowStyles.Add(new RowStyle(SizeType.AutoSize));
objTablePageNotes.RowCount = Rows;
Rows++;
}
}
}
return objTablePageNotes;
}
然后将此表面板对象 ref 分配给
tbPanelNoteSection = new CanvasDesignHandler().createInfoSection(_STARTDATE, _ENDDATE);
最后它添加到面板控制
this.pnlPage.Controls.Add(tbPanelNoteSection);