tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルボタンのクリックでウィンドウを閉じるには?
記事No2494
投稿日: 2005/11/01(Tue) 13:50
投稿者ルピカ
[OSのVer]:WindowsXP    [VBのVer]:ASP.NET(WebMatrix)
VBを使い始めて半年、ASP.NET(WebMatrix)を使い始めて4日です。
今、フォーム認証を製作しており、フォームからIDとパスワードを入力しログインボタンをクリックし、Accessで作ったデータベースの情報とあっていれば別ウィンドウで取得したいページが表示されるようにしています。
そのときにログイン画面が表示されているウィンドウを閉じたいと思っているのですが、VB.NETのよ
うにUnloadを使用すると、「そのメソッドはVB.NETの名前空間で使用してください」と表示されてし
まいます。ためしにCloseを使ってみても「名前が宣言されていない」と出てしまいました。WebMatri
xならではの書き方があるのでしょうか?ご教授お願いいたします。  

[ツリー表示へ]
タイトルRe: ボタンのクリックでウィンドウを閉じるには?
記事No2497
投稿日: 2005/11/01(Tue) 15:06
投稿者魔界の仮面弁士
> そのときにログイン画面が表示されているウィンドウを閉じたいと思っているのですが、

ウィンドウ制御は VB.NET ではなく、クライアント側スクリプト(JavaScript等)にて
操作する必要があります。

この場合は、ボタンの onclick に対して、"window.close()" を割り当てておけば OK かと。

[ツリー表示へ]
タイトルRe^2: ボタンのクリックでウィンドウを閉じるには?
記事No2498
投稿日: 2005/11/01(Tue) 15:34
投稿者ルピカ
魔界の仮面弁士さん、早速のご回答、有難うございます。
> この場合は、ボタンの onclick に対して、"window.close()" を割り当てておけば OK かと。

window.close()をボタンのonclickに割り当てるとパスワードが間違ってしまっていた場合にもウィンドウが閉じてしまわないでしょうか?

下記に今の状態を記述いたします。
------------------------------------------------------------------------
Private Sub LoginBtn_Click(Sender As Object, E As EventArgs)
        Dim objIE As Object
        objIE = CreateObject("InternetExplorer.application")


        Dim userDS As New System.Data.DataSet
        userDS = GetUser(UserName.Text, UserPass.Text)
        If userDS.Tables(0).Rows.Count = 1 Then

            objIE.FullScreen = False
            objIE.ToolBar = True
            objIE.MenuBar = True
            objIE.Visible = True

            Call objIE.Navigate("hhttp://yahoo.co.jp")
            Do While objIE.Busy
            Loop

            objIE.Visible = True

           (ここでウィンドウを閉じる作業をする記述をするのだと思うのですが)

        Else
            Msg.Text = "パスワードに誤りがあります"
        End If
      End Sub
----------------------------------------------------------------
ここから下にAccessで作成したデータを参照させるようにしています。
----------------------------------------------------------------

[ツリー表示へ]
タイトルRe^3: ボタンのクリックでウィンドウを閉じるには?
記事No2502
投稿日: 2005/11/01(Tue) 20:10
投稿者魔界の仮面弁士
> window.close()をボタンのonclickに割り当てるとパスワードが間違ってしまっていた場合にもウィンドウが閉じてしまわないでしょうか?

そのあたりをどのように組み込むかは、ajaxベースで開発しているのか、PostBack しているかなど、
現在の設計によって変わりますので、こちらでは何とも言えません。(^^;)
適当なタイミングで、適宜条件判断を含めてください。

たとえば、ボタン押下後に画面遷移が発生するのであれば、遷移後の画面にて、
 <script>window.close()</script>
ですとか、あるいは、
 <body onload="window.close()">
のようなHTMLが返されるようなコードにする、とか。

>         objIE = CreateObject("InternetExplorer.application")
えぇと…ASP.NET なのですよね?
サーバサイドで、CreateObject にて IE を起動したり閉じたりするのですか?
(私には、ここで IE を起動させる必要性がわかりません…)

>            (ここでウィンドウを閉じる作業をする記述をするのだと思うのですが)
InternetExplorerオブジェクトを閉じるのであれば、Quitメソッドが使えますよ。

[ツリー表示へ]
タイトルRe^4: ボタンのクリックでウィンドウを閉じるには?
記事No2503
投稿日: 2005/11/01(Tue) 22:39
投稿者ルピカ
> >         objIE = CreateObject("InternetExplorer.application")
> えぇと…ASP.NET なのですよね?
> サーバサイドで、CreateObject にて IE を起動したり閉じたりするのですか?
> (私には、ここで IE を起動させる必要性がわかりません…)
ASP.NETを使用するのが初めてなのでやり方が良く分からなくて、VB.NETのWindowsアプリケーションでフォーム認証を作った時のをそのままWebMatrixに持ってきてしまいまして。
別ウィンドウに表示させなくてもそのままでも大丈夫なのですがいまいちそのやり方が分からなかったのです。
半年前からVBを触っているのにお恥ずかしい話ですが。


>たとえば、ボタン押下後に画面遷移が発生するのであれば、遷移後の画面にて、
> <script>window.close()</script>
>ですとか、あるいは、
> <body onload="window.close()">
>のようなHTMLが返されるようなコードにする、とか。
今は自宅なので確かめてみる事が出来ないのですが、是非とも確かめさせていただきます。


あさっては学園祭なので、明日は一日中準備で、学園祭の翌日は振替休日なので3日間はお返事できないと思います。申し訳ありません。

[ツリー表示へ]
タイトルRe^5: ボタンのクリックでウィンドウを閉じるには?
記事No2534
投稿日: 2005/11/07(Mon) 10:49
投稿者ルピカ
結果を報告いたします。
結局は別ウィンドウで表示させず、 Response.Redirectでそのままのウィンドウで表示させることにしたためにウィンドウを閉じる作業が必要でなくなりました。
ですが丁寧に教えていただいて本当に有難うございました。閉じる作業は必要ではなくなりましたが、
そのことができるようになるためにもっと勉強します。本当に有難うございました。

[ツリー表示へ]