2016-04-28 63 views
1

我正在嘗試將Web瀏覽器添加到現有的C#應用​​程序,但是,在大約6年沒有使用C#的情況下,我對它的工作原理並不熟悉。C#web瀏覽器構造函數

我想瀏覽器添加到partial class(再次,東西我不熟悉),使用下面的代碼:

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

但是,我得到一個編譯在構造錯誤,即:

'WebBrowserBase' 不包含一個構造函數參數0

我Google'd這一點,碰上了關於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個參數

所以我猜這個問題不是與構造函數中的參數數量有關......任何人都可以解釋我在做什麼錯誤嗎?

+0

你打算使用它?根據這個我建議使用XAML或一個正常的webrequest –

+0

基本上,我想在web瀏覽器中顯示當前的應用程序,讓用戶可以選擇在應用程序顯示和網頁顯示之間切換爲應用程序將在不同的地方爲用戶提供打開特定網頁的選項。我從來沒有使用過XAML--這是我第一次遇到它,並且我不太確定如何使用它/將它與我自己手動編寫的代碼集成在一起... – someone2088

+0

什麼樣的技術堆棧是主要的應用程序在?你還沒有使用XAML?或者我們在談論一些概念證明? –

回答

2

如果您在WebBrowserBase Class看看它說:

「這個API支持的產品基礎結構,不適合直接在代碼中使用。」

它似乎沒有任何公共構造函數 - 所以你不能從它繼承。但是,如果你不希望創建自己的WebBrowser控制(改變它的一些功能),你應該只使用默認System.Windows.Forms.WebBrowserXAML查看:

<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> 
1
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"); 
    } 
}