• ベストアンサー

VB.net Webアプリケーションでのユーザーコントロール(DLL)の作り方

VB.netでWebアプリケーションでのユーザーコントロール(DLL)を試しに作ったのですが(テキストボックスを張り付けただけのもの)、WebアプリケーションにそのDLLを張り付けてもテキストボックスがでてきません。なぜでしょうか? DLL側のソース(一部)  Inherits System.Web.UI.UserControl'ユーザーコントロールと定義  Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox'テキストボックスはりつけ

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

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

override protected void OnInit(EventArgs e) { Control c = this.LoadControl("../WebApplication1/WebUserControl1.ascx"); Label1.Controls.Add(c); } 仮想パス '*/WebApplication1/WebUserControl1.ascx' がほかのアプリケーションに割り当てられていますが、これは許可されていません。 とエラーが出てやはり無理ですね。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=11522

lord_chan
質問者

補足

ありがとうございます。一旦しめます。

その他の回答 (4)

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

> ユーザーコントロールを動的に貼り付け 同一プロジェクトなら LoadControl("hoge.ascx") でいいけど、別プロジェクトではやったことない。

lord_chan
質問者

補足

ありがとうございます。 LoadControl("hoge.ascx") だけだと、表示できませんでした。なにかプロパティの設定とかいるのでしょうか?

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

>Inherits System.Web.UI.WebControls.TextBox >とするとかろうじてテキストボックスは表示されるのです。 それはカスタムコントロールです。 http://www.microsoft.com/japan/msdn/library/ja/vbcon/html/vbconwebusercontrolsvscustomwebcontrols.asp より Web ユーザー コントロール Visual Studio のツールボックスに追加できない。 ということでカスタムコントロールを作るしか手はないと思う。

lord_chan
質問者

補足

別プロジェクトのユーザーコントロールは使えないということでしょか? DLL(ユーザーコントロール)を参照設定して、ユーザーコントロールを動的に貼り付けできないのでしょうか? object.Controls.Add(dllTxt) みたいな感じで。

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

考えてみたら、 別プロジェクトのDLL参照しても、ascxファイルは参照 していない。 外部のユーザーコントロールは使えないのは当然でしょう。

lord_chan
質問者

補足

ありがとうございます。使える場合もあります。 Inherits System.Web.UI.UserControl ではなく Inherits System.Web.UI.WebControls.TextBox とするとかろうじてテキストボックスは表示されるのです。UserControlにTextBoxを張り付けても、TextBoxが表示されないんです。こまりました。

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

> WebアプリケーションにそのDLLを張り付けても DLLを貼り付けるのではなくて、ユーザーコントロールを貼り付けるのでしょう。 でも、別プロジェクトのDLLをツールボックスに登録してもユーザーコントロールは 灰色なので貼り付けできない。 もちろん、カスタムコントロールならOKです。 もしかして、外部のユーザーコントロールは使えないというオチかも。

関連するQ&A