WebBrowserコントロールを継承する方法

このQ&Aのポイント
  • VB.NETで既存のWebBrowserコントロールを継承して独自のコントロールを作成する方法を紹介します。
  • 継承をするためには、プロジェクトに新しいクラスを追加する必要があります。
  • また、Designer.vbファイルを編集することで、既存のWebBrowserコントロールを新しく作成したクラスに置き換えることができます。
回答を見る
  • ベストアンサー

WebBrowserコントロールを継承するには

VB.NETで既存のWebBrpwserコントロールを継承して 独自のコントロールを作成せいしたいのですが上手くいきません。 以下、私が実践した手順です。 1.プロジェクトにクラスを追加   →クラス名:CBrowser 2.CBrowserにWebBrowserを継承   →Inherits WebBrowserを記述 3.フォームに既存のWebBrowserを配置 4.Designer.vbを編集   →2箇所のSystem.Windows.Forms.WebBrowserをCBrowserに置き換え このやり方だと、稀にフォームデザイナーがエラーを出してしまいます。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

> 1.プロジェクトにクラスを追加 別プロジェクトにする(Windowsフォームコントロールライブラリ) http://msdn.microsoft.com/ja-jp/library/w2a8y03d(v=vs.110).aspx

popporunga
質問者

お礼

ご回答ありがとうございます。 別プロジェクトにしたらエラーが消えました。

その他の回答 (1)

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

「稀に」の意味がよくわかりませんが、一度ビルドしてみてはいかがですか?

popporunga
質問者

お礼

ご回答ありがとうございます。 エラーでビルドができない状態でした。

関連するQ&A

  • WebBrowser内のフォームをsubmitする(VB2008)

    VB2008でWebBrowserコントロール内のsubmitボタンを以下のコードでクリックしようとしているのですが、 WebBrowser1.Document.Forms("フォームの名前").InvokeMember("submit") NullReferenceExceptionはハンドルされませんでした。 オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出ます。 ボタンがフォームの中ではなく、tableの中に配置されているようで、idも指定されておらず、nameとvalueだけ指定されているのですが何か方法はないでしょうか。 どなたかお願いします。

  • DataGridViewTextBoxColumnを継承したカスタムコ

    DataGridViewTextBoxColumnを継承したカスタムコントロールにプロパティを追加したのですが、デザイナで編集保存して一旦閉じてから開き直すと初期値に戻ってしまいます。 保存したあと、form.Designer.vb ファイルをテキストエディタで開いてみると、やはり初期値(=False)が保存されているようです。 どのようにすればデザイナで設定した値を保存できるのでしょうか? ご教授いただけませんでしょうか。宜しくお願いします。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34107&forum=7 この情報などを見てみたのですが、途中からイベント処理?の話に変わっているようで違うのかな?と思いました。 開発環境は Visual Basic 2010 Express です。 以下、作ったカスタムコントロールのソースです。 Public Class DataGridViewTextBoxColumnEx Inherits System.Windows.Forms.DataGridViewTextBoxColumn Private __CalcValue As Boolean Public Property CalcValue() As Boolean Get Return Me.__CalcValue End Get Set(ByVal value As Boolean) Me.__CalcValue = value End Set End Property End Class

  • 拡張したコントロールはデザイナで操作できるのでしょうか?

    VB2008を使っています。フォームに貼り付けたDataGridViewコントロールをそのまま使っていましたが、拡張したDataGridViewExを使うときにForm1.Designer.vbを開いて直接コード編集すると良くないのでしょうか? 変更しようとすると、元のコードに以下のようなコメントが書いてありました。(コード エディタを使って変更しないでください) デザイナだけでできないので、クラスダイヤグラムの表示から直接フォームを定義しているコードを書き換えて、拡張コンポーネント名に置き換えて変更すると、動作しましたがこのやり方は正しいのでしょうか? --- 【Form1.Designer.vb】 'Windows フォーム デザイナで必要です。 Private components As System.ComponentModel.IContainer 'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。 'Windows フォーム デザイナを使用して変更できます。 'コード エディタを使って変更しないでください。 <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip --- やろうとしたこと、以下のクラスファイルDataGridViewEx.vbを作成し、 Form1.Designer.vbの次の2箇所を変更しました。 【Form1.Designer.vb】 (1) Private Sub InitializeComponent() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip 'Me.DataGridView1 = New System.Windows.Forms.DataGridView Me.DataGridView1 = New DataGridViewEx (2) 'Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView Friend WithEvents DataGridView1 As DataGridViewEx --- 【DataGridViewEx.vb】 拡張したクラス Public Class DataGridViewEx Inherits DataGridView Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean 'Enterキーが押された時は、ブラウザを開き、入力キーを無視する If (keyData And Keys.KeyCode) = Keys.Enter Then 'Return Me.ProcessTabKey(keyData) Process.Start("http://www.yahoo.com")  Return True '←これで無視しているのかな? End If Return MyBase.ProcessDialogKey(keyData) End Function Protected Overrides Function ProcessDataGridViewKey( _ ByVal e As KeyEventArgs) As Boolean 'Enterキーが押された時は、ブラウザを開き、入力キーを無視する If e.KeyCode = Keys.Enter Then 'Return Me.ProcessTabKey(e.KeyCode) Process.Start("http://www.yahoo.com") Return True '←これで無視しているのかな? End If Return MyBase.ProcessDataGridViewKey(e) End Function End Class 以上です。

  • 抽象クラスの継承について

    すいませんがご教授下さい。 ASP.NETとVB.NETを使用してアプリを開発しています。 存在するクラスは以下のようなクラスです。 (WebForm1.aspxとWebForm1.aspx.vbとClass1.vb(抽象クラス)があります。) したい事はClass1.vbをWebForm1.aspx.vbが継承したいのですが継承させた後にWebForm1.aspxを開こうとすると「Webフォームデザイナにファイルを読み込めませんでした。・・・・」とエラーポップアップが表示されます。「はい」でHTMLは見れるのですがデザインはタブ自体がないです。普通のクラスを継承させると問題ないのですが。抽象クラスだとエラーになります。 対処方を教えて下さい。

  • コントロールの継承

    VisualBasic2013を利用してシステム開発を行っております。 DataGridViewを継承したユーザーコントロールを作成しようと考えております。 実装したい事としては ・指定したフォント(MeiryoUI)にしておきたい ・行の色を水色にしておきたい ユーザーコントロールを作成して継承するところまでは 実装できているのですが、上記のようにプロパティの値をセットする 方法が分らず困っておりました。 普通にDataGridViewをフォームに配置する場合は 以下のように指定できておりました。 '/ フォントの指定 Me.DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font("Meiryo UI", 9) '全ての行の背景色を水色にする Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.AliceBlue どなたかご教授頂けますと幸いです。

  • Visual Basic 6.0 の WebBrowser コントロー

    Visual Basic 6.0 の WebBrowser コントロールが使えなくなり困っています。 WindowsXpマシンで、VB6でプログラムを作っています。プログラムにはコンポーネント追加で加えたWebBrowser コントロールを使っています。 今年の3月頃まではIE6を使っており、問題なく使えていました。4月14日になってやってみるとWebBrowser1.Navigateが使えないというメッセージがでます。このためプログラムを修正できなくなりました。以前、コンパイルしていたEXEプログラムは動きます。 3月末頃にIE8にしたのが悪かったかと思って、IE6の別のパソコンでやってみたのですが同じメッセージでVB6で作ったプログラム内のwebブラウザが使えません。 「Visual Basic 2005 では Windows フォームの WebBrowser コントロールに置き換えられています。」という案内を見つけましたが、Visual Basic 2005に変えたつもりはありません。 読んでも(頭が固いようで)どうしたら良いのか分かりません。

  • 【C++】継承しながら、インプリメント。

    VB.netでは、以下のように継承しつつ実装ができると思いますが、 (1)C++ では、できないのでしょうか? (2)Java では、できないのでしょうか? Class SampleClass Inherits BaseClassHoge Implements InterfaceFoo また、 Implements は、Javaでは可能ではありますが、 C++ には「Implements」はないのでしょうか? (C++ では純粋仮想関数の集合となるアブストラクトクラスを継承するという方法しかできないのでしょうか?) .

  • WebBrowserで開いたEXCELファイルへのデータ更新について

    WebBrowserで開いたEXCELファイルへのデータ更新について VB2005で開発を行っております。 WebBrowserコントロール上に既存のEXCELファイルを表示させる事はできたのですが この今開いているEXCELファイルに対して、セルにデータを書き込んだりする方法が わからなくて困っております。 要件としては、VB2005のフォームで表示されてるデータをEXCELに転記し、 ユーザーがWebBrowserに表示されたEXCELに対して操作を行った後に 保存する必要があります。 単にEXCELファイルを読み込み、データを転記して保存するだけなら すでに開発済みなのですが、WebBrowserに表示しながら編集したい用件が出てきて困っております。 よろしくお願いします。

  • WebBrowserがロードできない(VB6)

    VB新人です。 VB6でシステムを開発してます、 VBを起動したところ以下のようなメッセージが表示します。 何かOCXなどを参照していないのでしょうか? どうすればエラーが無くなるのでしょうか? 突然出て、悩んでいます。 クラス SHDocVwCtl.WebBrowser(コントロール www) はロードされていません。 よろしくお願いします。

  • プロパティウィンドウのプロパティを非表示にするには?

    Inherits System.Windows.Forms.Button を継承してサイズや色を設定しています。 デザイナで貼り付けたあとサイズや色のプロパティが 変更できてしまうのですが、このプロパティを 非表示にする事は可能でしょうか? 使用環境はVB 2005です。

専門家に質問してみよう