【问题标题】:C# web browser constructorC# Web 浏览器构造函数
【发布时间】:2016-08-23 03:36:51
【问题描述】:

我正在尝试将 Web 浏览器添加到现有的 C# 应用程序中,但是由于大约 6 年没有使用 C#,我对它的工作原理非常陌生。

我正在尝试使用以下代码将浏览器添加到partial class(同样,我不熟悉的东西):

public partial class WebBrowser : WebBrowserBase{
    public WebBrowser(){
        ...
    }
    ...
}

但是,我在构造函数上收到一个编译错误:

'WebBrowserBase' 不包含采用 0 个参数的构造函数

我用谷歌搜索了这个,并在 SO 上遇到了以下问题:C# Error: Parent does not contain a constructor that takes 0 arguments。我尝试按照答案中的建议进行操作,并将代码更改为:

public partial class WebBrowser : WebBrowserBase{
    public WebBrowser(int i) : base(i){
        ...
    }
    ...
}

然而,我得到一个编译错误,上面写着:

'WebBrowserBase' 不包含带 1 个参数的构造函数

所以我猜这个问题与构造函数中的参数数量无关......谁能解释我在这里做错了什么?

【问题讨论】:

  • 你打算用它做什么?根据这一点,我建议使用 XAML 或普通的 webrequest
  • 基本上,我想在网络浏览器中按原样显示当前应用程序,让用户可以选择在应用程序显示和网页显示之间切换,就像应用程序在不同的地方一样,为用户提供打开特定网页的选项。我从未使用过 XAML - 这是我第一次遇到它,并且不确定如何使用它/将它与我将自己手动编写的代码集成...
  • 主要应用是在什么技术栈中完成的?因为你没有使用过 XAML?还是我们在谈论一些概念证明?
  • 我才刚刚开始研究这个——我认为目前的 GUI 是使用 XAML 创建的(解决方案中有 .xaml.cs 文件)——主应用程序是用 C# 编写的.所以我想最好使用 XAML 来编辑 GUI,而不是用我自己的 C# 编写?我以前从未使用过 XAML,通常只是为我自己创建的任何 GUI 编写源代码(主要是 Java 应用程序,使用 swing 框架)。在这种情况下,我将在 Google 上搜索 XAML 教程。

标签: c# browser constructor constructorargument


【解决方案1】:

如果您查看WebBrowserBase Class,它会声明:

“此 API 支持产品基础架构,不打算直接从您的代码中使用。”

而且它似乎没有任何公共构造函数——所以你不能从它继承。但是如果你不想创建自己的WebBrowser 控件(改变它的一些功能),你应该在XAML 视图中使用默认的System.Windows.Forms.WebBrowser

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow"
    Width="525"
    Height="350">
    <WebBrowser HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  />
</Window>

【讨论】:

    【解决方案2】:
      In Inheritance,
    
       If Derived class contains its own constructor which not defined in Base class then this error Occurs
    For Example:
     class FirstClass
       {
          public FirstClass(string s) { Console.WriteLine(s); }
       }
    
    class SecondClass : FirstClass
    {
        public SecondClass()
        {
            Console.WriteLine("second class");
        }
    }
    
    Output: Error:-'myconsole.FirstClass' does not contain a constructor that takes 0 arguments 
    
    To Run without Error:
     class FirstClass
    {
        public FirstClass()
        {
            Console.WriteLine("second class");
        }
      public FirstClass(string s) { Console.WriteLine(s); }
    }
    
    class SecondClass : FirstClass
    {
    
        public SecondClass()
        {
            Console.WriteLine("second class");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 2016-09-10
      相关资源
      最近更新 更多