0

我正在研究 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);
4

1 回答 1

0

我添加了 DocumentCompleted 事件:

 if ((this.wbNoteContainer.Document.Body.ScrollRectangle.Size.Height < this.wbNoteContainer.Size.Height))
        {
            this.wbNoteContainer.Document.Body.Style = "overflow:hidden";
        }

问题得到解决..!

于 2013-11-12T15:11:10.743 回答