tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルラベルのイベントプロシージャーで
記事No2528
投稿日: 2005/11/06(Sun) 22:17
投稿者クルー
[OSのVer]:WindowsXP   [VBのVer]:VB.NET2003 
初めて投稿します。クルーと申します。
ラベルにクリックのイベントプロシージャーって設定できるのでしょうか?
ちなみにWebアプリを作成しています。
VB4ではラベルのクリックイベントが設定できています。

VB4の知識しかなく、今回.netを勉強しているところです。
VB4の資源を.netで再構築できないかと思っています。
がんばりますのでいろいろ教えてください。
よろしくお願いします。

[ツリー表示へ]
タイトルRe: ラベルのイベントプロシージャーで
記事No2529
投稿日: 2005/11/06(Sun) 23:11
投稿者花ちゃん
> ラベルにクリックのイベントプロシージャーって設定できるのでしょうか?
Form に Label を張り付けて、クリックして見て下さい。(デザイン画面で)

[ツリー表示へ]
タイトルRe: ラベルのイベントプロシージャーで
記事No2530
投稿日: 2005/11/06(Sun) 23:15
投稿者なおこ(・∀・)
お世話になります。

> Webアプリを作成しています。
という事はASP.NETですよね。
Windowsアプリケーションであれば、.NETでも
LabelのClickイベントを従来どおりハンドリングする事は可能ですが、
Webアプリケーションだと、DHTML・JavaScriptを用いる事になるだろうと思います。

具体的には↓こんな感じで window.event.srcElement でクリックされたエレメントを取得して
submitする。といった感じになると思います。
hhttp://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?mode=allread&no=2422&page=0

↓こちらなど、参考になれば…。
hhttp://homepage2.nifty.com/oto-san/fr1work_paso_1_hp2_2_dhtml.htm

[ツリー表示へ]
タイトルRe^2: ラベルのイベントプロシージャーで
記事No2531
投稿日: 2005/11/07(Mon) 09:31
投稿者クルー
[OSのVer]:Windows    [VBのVer]:VB.NET  

花ちゃんさん、なおこさんご回答ありがとうございました。
Webアプリケーションではやはり簡単ではなかったのですね。
window幅や高さもJavaScliptを使用しないとだめですよね。

なおこさんから教えていただいたwindow.event.srcElement を
これから考えてみたいと思います。
ありがとうございました。
また分からなくなりましたらご協力お願いします。 クルー

[ツリー表示へ]
タイトルRe^4: ラベルのイベントプロシージャーで
記事No2537
投稿日: 2005/11/07(Mon) 11:48
投稿者クルー
[OSのVer]:Windows    [VBのVer]:VB.NET  
> VB4ではラベルのクリックイベントが設定できています との事だったので
> てっきり..... 。
> それとも、VB4.0 でも Webアプリケーション って作成できたのでしょうか?

花ちゃんさん説明不足ですいませんでした。ASP.NETと書けばよかったですね。
VB4ではWebアプリできないと思います。

また、なおこさんあのあとJavaScliptで

<SCRIPT LANGUAGE="JavaScript">
function open(){
    window.open("aaa.html","window1") }
</SCRIPT>


<A HREF="#" onclick="open()"><asp:label id="Label1" st
yle=…></asp:label></A>

をHTMLビューから手入力でやってみました。
これで表示できるようになったのですが、使い方として間違っていますでしょうか?
なおこさんから教えていただいたwindow.event.srcElementがよく分かりませんでした。
すいません、力量不足でした。

DhtmlとかJavaScliptは通常Web作成で使うものと同じでよいのでしょうか?
今後のためにもなおこさんが教えてくれたやり方も知っておきたいのですが
もし良かったら教えていただけないでしょうか?
これはクラス化も出来るのでしょうか?

function onClick()
{
    srcElem = window.event.srcElement;
window.open("aaa.html","window1")
}

ではぜんぜん違いますよね。また呼び出し側は私と同じような感じで
<A HREF="#" onclick="onClick()"><asp:label id="Label1"
style=…></asp:label></A>
ではだめですよね。よろしくお願いします。 クルー

[ツリー表示へ]
タイトルRe^5: ラベルのイベントプロシージャーで
記事No2538
投稿日: 2005/11/07(Mon) 12:41
投稿者なおこ(・∀・)
お世話になります。

> JavaScliptで
>
> <SCRIPT LANGUAGE="JavaScript">
> function open(){
>     window.open("aaa.html","window1") }
> </SCRIPT>
>
> <A HREF="#" onclick="open()"><asp:label id="Label1" st
> yle=…></asp:label></A>
>
> をHTMLビューから手入力でやってみました。
> これで表示できるようになったのですが、使い方として間違っていますでしょうか?
別ウィンドウでaaa.htmlを表示したいだけなのですよね。
であれば、これは間違ってないと思います。

> なおこさんから教えていただいたwindow.event.srcElementがよく分かりませんでした。
> すいません、力量不足でした。
私の前の投稿でご提示しましたURLはかなり詳しく書かれていると思います。
解らない単語が出てきたら、e-words(hhttp://e-words.jp/)などで調べて
理解するように頑張ってください。

> DhtmlとかJavaScliptは通常Web作成で使うものと同じでよいのでしょうか?
通常Web作成というと??
他言語(JavaとかPHPとか)でも使うのか?ということですか?
であれば、必要に応じて他の言語でも使うことになると思います。

> 今後のためにもなおこさんが教えてくれたやり方も知っておきたいのですが
> もし良かったら教えていただけないでしょうか?
> これはクラス化も出来るのでしょうか?
クラス化とは?.NETのクラスとして持つことは可能か?という事ですか?
であれば不可能です。
サーバーサイドとクライアントサイドの違いについて調べてみてはいかがでしょう。

> function onClick()
> {
>     srcElem = window.event.srcElement;
> window.open("aaa.html","window1")
> }
>
> ではぜんぜん違いますよね。また呼び出し側は私と同じような感じで
> <A HREF="#" onclick="onClick()"><asp:label id="Label1"
>  style=…></asp:label></A>
> ではだめですよね。よろしくお願いします。 クルー

上のソースを見る限りでは、window.event.srcElementをとって来ても、
画面遷移先に何も渡してませんよね。

解答の一例としてはこんな感じになると思います。
■WebForm3.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm3.aspx.vb"
Inherits="test002.WebForm3"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>WebForm3</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="hhttp://schemas.microsoft.com/intellisense/ie5">
    <SCRIPT language="javascript" type="text/javascript">
    <!--
    function onClick()
    {
      srcElem = window.event.srcElement;
      if (srcElem.id == "Label1") {
        document.Form1.action = "WebForm3.aspx";
        document.Form1.test.value = srcElem.id;
        document.Form1.target = "_self";
        document.Form1.submit();
      }
    }
    // -->
    </SCRIPT>
  </HEAD>
  <body MS_POSITIONING="GridLayout" onclick="onClick()">
    <form id="Form1" method="post" runat="server">
    <input type="hidden" name="test" value="" />
      <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 19px; POSITION: absolute; TOP:
23px" runat="server">Label</asp:Label>
      <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 22px; POSITION: absolute; TOP:
58px" runat="server">Label</asp:Label>
    </form>
  </body>
</HTML>

■WebForm3.aspx.vb
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
  ' ページを初期化するユーザー コードをここに挿入します。
  Dim strQueryData As String = Request.Params.Get("test")
  If strQueryData <> "" Then
    Me.Label2.Text = strQueryData + "がクリックされました"
  End If
End Sub

[ツリー表示へ]
タイトルRe^6: ラベルのイベントプロシージャーで
記事No2541
投稿日: 2005/11/07(Mon) 16:23
投稿者クルー
[OSのVer]:Windows    [VBのVer]:VB.NET  
なおこさんご返信ありがとうございました。
また、サンプルコードまで作っていただき、すいません。

確認できましたのでご連絡いたします。
ありがとうございました。 クルー

[ツリー表示へ]