- PR -

System.Windows.Formsについて

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-12-27 10:42
引用:

匿名さんの書き込み (2007-12-27 10:30) より:

つまり、ブラウザで表示を行うのはあくまでHTMLやJavaScriptの文章であって
サーバ側からクライアント側にそういった表示する文章が返る関数?で
ない限り意味がないわけですね!


それどころか MessageBox.Show メソッドはサーバ側で実際に実行されて応答不能になりかねないです。

引用:

しかし何でインポートで落ちていたんだろう・・・。


落ちるとはどういうことでしょうか? コンパイルが通らないならわかります。 コンパイルが通った時点で Imports に意味はありませんから "Imports で" 落ちることはありえないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
匿名
会議室デビュー日: 2007/12/26
投稿数: 6
投稿日時: 2007-12-27 10:48
わざわざどうもです!

>>じゃんぬねっと様
プログラムを保存して、実際にIEで呼び出しすときに
エラーのページが表示されるのですよ。私はそれを落ちると呼んでました。

なのでこの場合は、コンパイルが通らなかったって事になると思います。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-12-27 11:03
引用:

匿名さんの書き込み (2007-12-27 10:48) より:

プログラムを保存して、実際にIEで呼び出しすときに
エラーのページが表示されるのですよ。私はそれを落ちると呼んでました。
なのでこの場合は、コンパイルが通らなかったって事になると思います。


そういうことなら 「MessageBox.Show メソッドでエラーページが表示される」 ということだと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2007-12-27 11:22
Webプロジェクトを作成して、aspxファイルの2行目くらいに

コード:

<%@ Import namespace="System.Windows.Forms"%>



という行を貼り付けて実行すると、

引用:

'/' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

コンパイル エラー
説明: この要求を送信するために必要なリソースをコンパイル中に、エラーが発生しました。以下のエラーの詳細を確認して、ソース コードを修正してください。

コンパイル エラー メッセージ: CS0234: 型または名前空間名 'Windows' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。

ソース エラー:

行 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
行 2: <%@ Import namespace="System.Windows.Forms"%>
行 3:
行 4: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




というエラーが発生します。(VisualStudio2005で確認)
そのことを指しているのだと思います。

エラーが出ないようにするには、プロジェクトの参照設定に
System.Windows.Forms.dllを追加すればよいのですが、手元の環境ではうまくいくプロジェクトとそうでないプロジェクトがありました。
(うまくいく方はweb.configにアセンブリ参照が追加されるのだけど、うまくいかない方はソリューションエクスプローラの「参照設定」のところに追加されるだけで意味がない)

[追記]
匿名さん>
エラーが出なくなるというだけで、これが解決というわけではないのでご注意を。
[/追記]

[ メッセージ編集済み 編集者: rain 編集日時 2007-12-27 11:25 ]
匿名
会議室デビュー日: 2007/12/26
投稿数: 6
投稿日時: 2007-12-27 11:46
>>じゃんぬねっと様
勿論な話なのですが、インポートを省いてMessageBoxだけ書くと
MessageBoxで落ちるのですよ。で、インポート文を加えるとその行で
落ちてしまいました。だからインポートがおかしいのかなーと思ったわけです。

>>rain様
うぉー、これは申し訳ないです。
本来この手の説明は私がすべきなのにわざわざありがとうございます!

仰るとおり、私のソースもそんな感じになっていて
出てきているエラーもまさにその通りです。

私の場合、MicroSoftが提供しているWebMatrixで開発をしており
調べていくうちに、VisualStudioには参照設定という項目があって
それをすればいいと書いてあったのですが、WebMatrixの、
その参照設定にあたる物がどこにあるのかがわからなかったのです。

これかなーと思った、WebMatrixの[アセンブリの追加/削除]というとこに
[System.Windows.Forms]を追加してみても結局変わらなかったので
行き詰ってしまった・・・という次第です。


後よければお聞きしたいのですが、web.configというのは
クライアント側のになりますでしょうか?

ファイル検索をしたらクライアントの方には2,3個web.configが存在して
サーバ側には1個もなかったのですが、正しくはどちら側のマシンの
どのweb.configをいじれるのが正解なのですかね・・・?

>>エラーが出なくなるだけなのでご注意を
この辺はじゃんぬねっと様やtkrn様が言っていた事になるのでしょうね。
念押しありがとうございます。


[ メッセージ編集済み 編集者: 匿名 編集日時 2007-12-27 11:48 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-12-27 12:36
引用:

匿名さんの書き込み (2007-12-27 11:46) より:

勿論な話なのですが、インポートを省いてMessageBoxだけ書くと
MessageBoxで落ちるのですよ。で、インポート文を加えるとその行で
落ちてしまいました。だからインポートがおかしいのかなーと思ったわけです。


実行時にエラーになるけど、メソッドが実行された時ではなくて、実行時のリソース コンパイルのことだったのですね。 "インポート" と書いてあったものですから、中間コードまでのコンパイルまでのことかと決め付けていましたが、<%@ Import > 要素の Namespace 属性を指していたのですね。

それにしてもアセンブリの参照が正しく追加されたりされなかったりするのは不可解ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2007-12-27 12:58
引用:

匿名さんの書き込み (2007-12-27 11:46) より:

後よければお聞きしたいのですが、web.configというのは
クライアント側のになりますでしょうか?

ファイル検索をしたらクライアントの方には2,3個web.configが存在して
サーバ側には1個もなかったのですが、正しくはどちら側のマシンの
どのweb.configをいじれるのが正解なのですかね・・・?




WebMatrixは全く知らないので見当違いかもしれませんが、
Webプロジェクト内にweb.configというファイルがあれば、それのことです。

引用:

じゃんぬねっとさんの書き込み (2007-12-27 12:36) より:

それにしてもアセンブリの参照が正しく追加されたりされなかったりするのは不可解ですね。




手元の環境(VisualStudio2005 TeamEdition)で試したところでは、

・うまくいかない方は、新規プロジェクトで「ASP.NET Webアプリケーション」で作成した。
(C#とVBででき方が違ったけど、両方ともだめだった)
・うまくいった方は、プロジェクトのプロパティで出てくる画面が上のものと違う。
 また、プロジェクトのアイコンを上のものと比較すると、C#の文字がない。

うまくいった方のプロジェクトは、自分では作り方がわかりませんでした...
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2007-12-27 13:07
うまくいった方のやり方が分かりました。

メニューから [ファイル]→[新規作成]→[プロジェクト] ではなく、
[ファイル]→[新規作成]→[Webサイト] で [ASP.NET Webサイト] を選んで作成したところ、
うまくいった方の動作になりました。
そこから「参照の追加」でSystem.Windows.Formsを選ぶと、web.configで
コード:
		<compilation debug="false" />


こうだったものが、
コード:
		<compilation debug="false">
			<assemblies>
				<add assembly="System.Windows.Forms,
                                      Version=2.0.0.0, Culture=neutral,
                                      PublicKeyToken=B77A5C561934E089"/>
                            </assemblies>
                  </compilation>


こんな感じになりました。

WebMatrixとは動作が違うと思いますので直接の参考にはならないと思いますが、
自分の書き込みの後始末ということで。

スキルアップ/キャリアアップ(JOB@IT)