【问题标题】:DotNetBrowser is a tiny window in my form, why and how do I fix this?DotNetBrowser 是我表单中的一个小窗口,为什么以及如何解决这个问题?
【发布时间】:2018-12-09 05:13:24
【问题描述】:

这是我当前的代码:https://hastebin.com/ifejusezat.cs

这是我看到的截图:https://gyazo.com/2ee9b1210649ca8ec61e3fa7e645a286

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        BrowserView browserView = new WinFormsBrowserView();
        Controls.Add((Control)browserView);
        browserView.Browser.LoadURL("http://www.google.com");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        BrowserView browserView = new WinFormsBrowserView(BrowserFactory.Create());
        Control browserWindow = (Control)browserView;
        browserWindow.Dock = DockStyle.Fill;
        Controls.Add(browserWindow);
    }
}

【问题讨论】:

  • 你知道Control的size属性吗?您需要了解它并使用它来解决您的问题。
  • @ChetanRanpariya RedBox 是该站点的新贡献者。我们不要以此为契机,表现得像个高中霸王。此外,他们正在使用dock fill 属性,乍一看我认为这应该最大化控制。
  • 我不确定我评论的哪一部分是欺凌行为。为寻找解决方案提供指导并不是欺凌。
  • @RedBox 尝试执行以下操作。从Form1()Form_Load 中删除所有代码。在设计模式下打开表单,将 WebBrowserView 控件添加到表单并在属性窗口中设置它的属性,例如“大小”等。

标签: c# dotnetbrowser


【解决方案1】:

更新答案:这是我完整的 Form1.cs(直接取自 teamdev website),它可以工作(见图),无需调整大小。

using DotNetBrowser;
using DotNetBrowser.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormsSampleCSLightweight
{
    public partial class Form1 : Form
    {

        private readonly BrowserView browserView;

        public Form1()
        {
            InitializeComponent();

            browserView = new WinFormsBrowserView(BrowserFactory.Create(BrowserType.LIGHTWEIGHT));
            Controls.Add((Control)browserView);
            browserView.Browser.LoadURL("http://www.google.com");
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (browserView != null)
            {
                browserView.Dispose();
                browserView.Browser.Dispose();
            }
        }
    }
}


原答案: 您可以在浏览器视图上尝试 UpdateSize 方法。

browserView.UpdateSize(someWidth, someHeight);

或者您可以尝试调整所查看文档的大小。

public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    //For the case when the control's Dock property is DockStyle.Fill
    this.Width = WebBrowser.Document.Body.ScrollRectangle.Width + 40; //40 is for border
    this.Height = WebBrowser.Document.Body.ScrollRectangle.Height + 40; //40 is for border
    //For the case when the control is not docked
    WebBrowser.Size = WebBrowser.Document.Body.ScrollRectangle.Size;
}

【讨论】:

  • 这个不行,我以前试过这个,又试了一次。
  • 另一个错误。这是我的错误:Form1' does not contain a definition for 'Form1_Load' and no extension method 'Form1_Load' accepting a first argument of type 'Form1' could be found (are you missing a using directive or an assembly reference?)我更像是 C# 的初学者,以前从未遇到过这个错误。
  • @Redbox 您可以从我在回答中提供的 teamdev URL 下载示例解决方案,并将其用作起点。或者,您可以查看 stackoverflow 的新错误答案:stackoverflow.com/questions/14172404/…。我建议您接受此答案作为您的解决方案,然后针对新问题发布新问题,但首先查看您的问题是否已经被问过。
  • 刚刚修复了该部分的错误,现在我遇到了同样的问题(只是小窗口现在有点大了)。编辑:样本不起作用。
【解决方案2】:

如果您使用的是 DotNetBrowser 1.9,请使用控件属性将 Dock 设置为 DockFill

Control browserControl = (Control)browserView;
browserControl.Dock = DockStyle.Fill;
Controls.Add(browserControl);

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2023-03-19
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多