- - PR -
WebアプリケーションにWindows Formsのコントロールを表示する方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-29 15:46
いつも勉強させていただいております。
以前、この件名でここでも議論されていたことなのですが、 参考として勧められていたMSDNは既に無く、自分の悩んで いる所がもっと低レベルであることから、ご質問させてい ただきました。 http://nadia.kabe.to/test/WinFormControlOnHTML/MyTextBox.html のサイトでhtmlファイルのオブジェクトタグの中に 記述されている classid="MyControls01.dll#MyTextBox" のMyControls01.dllのようなWebで使用するdllの作成 の方法を教えてほしいのですが、具体的にVS.NETでは どのように作成するのでしょうか? 言語はC#を使用しております。 非常に素人同然の質問で申し訳ありませんが、よろしく ご指導お願いします。 ターキッシュ |
|
投稿日時: 2004-03-29 16:10
普通に、マネージドなコントロールライブラリプロジェクト(コントロールが難しいなら、クラスライブラリ)を作成するだけです。
・・・って、そういうことではなく? |
|
投稿日時: 2004-03-29 16:21
私はこんな感じで作りました。
記憶を辿ってササっと書いているので、検証はご自身でなさって下さい。 1.Windowsアプリケーションにてユーザコントロールを作成。 2.コンパイル 3.ツールボックスに作成したユーザコントロールを追加。 4.Webアプリケーションにて画面を作成する際に先に登録したWindowsユーザコントロールを ドラッグ&ドロップ。 ※質問と回答が食い違っている場合、無視して下さい。 |
|
投稿日時: 2004-03-29 16:55
Jitta様、聖人@SKB様ご返答ありがとうございます。
Webアプリケーションの作成で 参照設定にSystem.Windows.Formsを追加し、 空白のクラスを追加してそこで、 下記のようなラベルを作成してみました。 using System; using System.Threading; using System.Timers; namespace Label_Test { public class Label_T:System.Windows.Forms.Label { public int i=0; public Label_T() { CreatTimer(); } public void CreatTimer() { System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(OnTimer); aTimer.Interval = 5000; aTimer.Enabled = true; } public void OnTimer(Object source, ElapsedEventArgs e) { i++; this.Text=i.ToString(); } } } はっきり言って動いてないので、このコードがあってるかどうかも 不明ですが、.NET FrameWorkが入ったマシンで五秒ごとに数を増 やしていく描画処理をやろうとしているだけなんですが、やはりWeb アプリケーションでは無理なのでしょうか? 聖人@SKB様のおっしゃる通り、Windowsアプリケーションにて ユーザコントロールを作成してやってみます。 それから、Jitta様 >普通に、マネージドなコントロールライブラリプロジェクト >(コントロールが難しいなら、クラスライブラリ)を作成するだけです。 とはVS.NETでは具体的にどのようなプロジェクトから始めるの でしょうか? 誠に勉強不足で申し訳ありません。 ターキッシュ |
|
投稿日時: 2004-03-29 19:07
聖人@SKB様
>1.Windowsアプリケーションにてユーザコントロールを作成。 >2.コンパイル >3.ツールボックスに作成したユーザコントロールを追加。 >4.Webアプリケーションにて画面を作成する際に先に登録したWindowsユーザコントロー >ルをドラッグ&ドロップ。 で、3まではうまくいったのですが、4で登録はされているよう なのですが、ツールボックスの中が半透明化していて選択でき ないような状態になってしまいます。 何度も申し訳ありませんが、ご指導よろしくお願いします。 ターキッシュ |
|
投稿日時: 2004-03-29 19:31
すみません。間違っていました。
記憶を辿って、「こうだったかなぁ」というので記述してしまいました。 申し訳ありません。 作成したコントロールを <object>タグのclassidに xxxxx.dll#名前区間.クラス名 という形式で宣言して表示されませんか? ちょっと試してみます。 |
|
投稿日時: 2004-03-29 20:07
1.Windowsコントロールライブラリのプロジェクトを作成
2.Windowsコントロールライブラリプロジェクトをコンパイル 3.ASP.NET Webアプリケーションプロジェクトを作成 4.ASP.NET Webアプリケーションに既存のプロジェクトとして Windowsコントロールライブラリのプロジェクトを追加 5.Webページに<object>タグでWindowsコントロールライブラリを指定 これで表示できました。 |
|
投稿日時: 2004-03-30 11:25
聖人@SKB様何度も申し訳ありません。
オブジェクトタグに <OBJECT id="sls_l" style="WIDTH: 200px; HEIGHT: 50px" classid="Label_Test.dll#Test_Label"></OBJECT> と指定しましたが、動きませんでした。 画像読み込み失敗時に表示されるような状態になっています。 何か上の記述で問題ありますでしょうか? 誠に申し訳ありませんが、よろしくご指導お願いします。 ターキッシュ |