C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Enterによるフォーカス移動について


(過去ログ 71 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■41658 / inTopicNo.1)  Enterによるフォーカス移動について
  
□投稿者/ Lisa (22回)-(2009/09/27(Sun) 09:46:52)

分類:[ASP.NET (VB)] 

2009/09/27(Sun) 10:04:20 編集(投稿者)
以前は皆様にお世話になり本当にありがとうございました。
また、質問させてください。
TextBoxにコメントを入力し、Enterキーを押すと、フォーカスが送信ボタンへ移動し、
再度Enterキーを押すと、送信ボタンに書いたスクリプトが動くという動作をさせたいです。

http://natchan-develop.seesaa.net/article/10826442.html
↑この情報を参考に以下のコードを書いたのですが、
ByVal e As System.Windows.Forms.KeyPressEventArgs) _の行で
コンパイル エラー メッセージ: BC30002: 型 'System.Windows.Forms.KeyPressEventArgs' が定義されていません。
のエラーがでます。どこが悪いのかアドバイス頂けると助かります。どうぞよろしくお願いします。

VWD2005(VB)で作成してます。

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Windows.Forms" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
    Private Sub TextBox_KeyPress(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    Handles TextBox.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
            e.Handled = True 'これが無いと警告音が出る。
            SendKeys.Send("{TAB}")
        End If
    End Sub
    'Microsoft.VisualBasic.ChrW(13) は Chr(Keys.Enter) でも良い

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = TextBox1.Text
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Enterキーによるフォーカスの移動の確認</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        コメント:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="送信" /><br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="・送信コメントがここに表示されます。"></asp:Label></div>
    </form>
</body>
</html>

引用返信 編集キー/
■41660 / inTopicNo.2)  Re[1]: Enterによるフォーカス移動について
□投稿者/ 通りすがり (53回)-(2009/09/27(Sun) 11:11:36)
> http://natchan-develop.seesaa.net/article/10826442.html
> ↑この情報を参考に以下のコードを書いたのですが、
これってWindowsアプリの方法じゃね?
ASP.NETのWebアプリは http://blog.livedoor.jp/papi1963/archives/406235.html
とか参考になるんじゃね? やってはないけど
引用返信 編集キー/
■41661 / inTopicNo.3)  Re[2]: Enterによるフォーカス移動について
□投稿者/ Lisa (23回)-(2009/09/27(Sun) 11:34:35)
No41660 (通りすがり さん) に返信
通りすがり様、早速のお返事ありがとうございます。
> ASP.NETのWebアプリは http://blog.livedoor.jp/papi1963/archives/406235.html
> とか参考になるんじゃね? やってはないけど
と同じに、TextBoxを3つ作り、参考ページのコードをコピペして動かしたみました。
エラーの発生はなく動き、画面が表示されたのですが、TextBox1にaaaと入力しEnterキー
を押してみたのですが、PCから「ポン」と言う音が出るだけで、カーソルがTextBox2に
移動してくれません。Enterキーを押すことでカーソルをTextBox2へ移動させる為には
どの様に現状の不具合を確認していけば良いでしょうか?
(エラーは出ないのにうまく動かないというのは、どこから手を付けていけば良いのか
経験がありません。特に今回の方法はJavascriptの部分ですよね。途方にくれています。)
皆様、アドバイスよろしくお願いします。

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Enterキーによるフォーカスの移動法の確認</title>
    <script text="javascript/text">
        function nextfocus(n) {
            if (event.keyCode == 13) {
                for (var i = 0, f = n.form.elements; i < f.length; i++) {
                    if (f[i] == n) {
                        (f[i + 1] || f[0]).focus();
                         break;
                    }
                }
                 event.returnValue = false;
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" onkeydown="nextFocus(this);" runat="server"></asp:TextBox><br />
        <asp:TextBox ID="TextBox2" onkeydown="nextFocus(this);" runat="server"></asp:TextBox><br />
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
    </div>
    </form>
</body>
</html>

引用返信 編集キー/
■41663 / inTopicNo.4)  Re[3]: Enterによるフォーカス移動について
□投稿者/ もりお (91回)-(2009/09/27(Sun) 19:31:13)
No41661 (Lisa さん) に返信
タグと関数名が少し間違っているみたいです。

> <script text="javascript/text">
<script type="text/javascript">

> function nextfocus(n) {
function nextFocus(n) {


> (エラーは出ないのにうまく動かないというのは、どこから手を付けていけば良いのか
> 経験がありません。特に今回の方法はJavascriptの部分ですよね。途方にくれています。)

私は Firefox で Firebug という JavaScript デバッガー(拡張機能)を使っています。
関数が定義されていませんよーなどエラー表示してくれて便利です。
IE8 だと開発者ツールでデバッガーを起動できたような気がします。

引用返信 編集キー/
■41666 / inTopicNo.5)  Re[4]: Enterによるフォーカス移動について
□投稿者/ Lisa (24回)-(2009/09/27(Sun) 21:25:00)
No41663 (もりお さん) に返信
> タグと関数名が少し間違っているみたいです。
> 
>><script text="javascript/text">
> <script type="text/javascript">
> 
>>function nextfocus(n) {
> function nextFocus(n) {
もりお様、お返事ありがとうございます。
もりお様ご指摘の2ヶ所の修正で、正しく動く様になりました。内容を理解せず参考ページ
のコードをコピペしただけという大失敗をしてしまいました。お恥ずかしいです。
(参考ページにも間違いがある事を意識しておかなくては。)

目的のTextBoxにコメントを入力し、Enterキーを押すと、フォーカスが送信ボタンへ移動し、
再度Enterキーを押すと、送信ボタンに書いたスクリプトが動くというプログラムもIE6上で
正しく動きました。ありがとうございました。

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = TextBox1.Text
        
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Enterキーによるフォーカスの移動の確認</title>
    <script type="text/javascript">
        function nextFocus(n) {
            if (event.keyCode == 13) {
                for (var i = 0, f = n.form.elements; i < f.length; i++) {
                    if (f[i] == n) {
                        (f[i + 1] || f[0]).focus();
                         break;
                    }
                }
                 event.returnValue = false;
            }
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        コメント:<asp:TextBox ID="TextBox1" onkeydown="nextFocus(this);" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="送信" /><br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="・送信コメントがここに表示されます。"></asp:Label></div>
    </form>
</body>
</html>

>>(エラーは出ないのにうまく動かないというのは、どこから手を付けていけば良いのか
>>経験がありません。特に今回の方法はJavascriptの部分ですよね。途方にくれています。)
> 
> 私は Firefox で Firebug という JavaScript デバッガー(拡張機能)を使っています。
> 関数が定義されていませんよーなどエラー表示してくれて便利です。
> IE8 だと開発者ツールでデバッガーを起動できたような気がします。
家でも会社と同じブラウザと言うことで、現在はIE6を使ってます。
FirefoxのFirebugや、IE8のデバッガとかのJavaScriptのデバッガも検討してみます。
いろいろとありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -