牛、豚、鶏、どれか一つ食べられなくなるとしたら?

[ XP / VisualWebDeveloper 2005 ExpressEdition / VB ]
VWDでプログラムを始めて一週間。
ネットで拾ったソースを使って練習している段階です。
そのままコピペしただけではエラーが出るので少しずつ修正していますが、
どうしても分からず数時間作業が止まっている部分があります。

*************************************
<エラー箇所>
'ダイアログのオーナーを設定する
waitDlg.Owner = Me

<エラーメッセージ>
型'ASP.day01_aspx' の値を 'System.Windows.Forms.Form' に変換できません。

*************************************

「Me」にエラーの波線が出ています。
このエラーはどのような原因から来るものでしょうか。

初歩的な質問で恐縮ですが、当方困り果てています。
どのような些細なアドバイスでも結構ですのでご教授下さい。


ちなみに、ソース元はこちらです。
『@IT:.NET TIPS 時間がかかる処理の進行状況をダイアログで表示するには? - C# VB.NET Windowsフォーム』
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/181waitdlg/waitdlg.html

A 回答 (1件)

VB.NETには 2種類のアプリケーションの形態があります


1つは Windows Formアプリケーション
もう1つは ASPX Web Form アプリケーション

で、 VWD Expressが作成できるのは後者の Web Formアプリケーションです
いわゆる IEやネットスケープなど Webブラウザ上で表示されるアプリケーションなのです

参照しておられるページのコードは Windows Form用のコードなのです
ブラウザを必要としないアプリケーション用のコードです

Web Formの VBコード(または C#コード)はサーバーサイドで実行されるものであり
ユーザー側のクライアントサイドでは一般的には実行されません
# クライアントサイド使用することは可能ですが ・・・

出来上がったページの 表示 > ソースを表示などとすると
VWD上の aspxとは違ったソースになっていると思います
コレは aspxのコントロールなどがサーバー上でHTMLに変換されてブラウザに送信しているからです

ココのエラーをクリアしても 実際に動作するのがサーバ側であり
ユーザー側では表示されません

エラーの要点は
waitDlgが System.Windows.Forms.Form型のオブジェクトを要求しているのに
System.Web.UI.Page型のオブジェクトを代入しようとしているからです
全然違うものを代入しているためです

このような表示をさせるのは aspxでは少々無理があると思います
クライアントスクリプトだけでは サーバー側の進行状況が把握できません
昔の MicrosoftのUpdateサイトの進行状況を示していたようなページみたいに作るしかないでしょうね
時間の掛かる処理は 別スレッド起動してコールバックするって感じかな ・・・ Webでコールバックって実現可能だったか不案内ですが
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!