プロが教えるわが家の防犯対策術!

VB.NET作っています。
System.Web.UIWebControls.TextBoxで、
ボタンを押すとテキストボックスのカーソル位置に文字列を入れたいのですが、どうやってやればいいのでしょうか?
おしえてくださいーー

A 回答 (2件)

> ユーザのブラウザで動作しなければ、できないのおでしょうか。

Javaスクリプトは使ったことがなく厳しいです

こればっかりはねぇ。
1. ボタンを押す。
2. テキストボックスに文字を挿入する。
3. テキストボックスに文字が挿入された結果をユーザーが目にする。

ASP.NET ですので、この流れの間に無理矢理サーバへの通信を入れることはできます。ASP.NET で言うところの「ポストバック」ってやつですね。
にしても、サーバ側で「テキストボックス上のカーソルの位置」を何らかの形で取得しなくてはいけません。

サーバ側ではテキストボックスの値は取得できますが、テキストボックスからカーソルの位置を取得することはできませんので「別の何か」に格納されている値として取得するしかありません。
では、「別の何か」にカーソルの位置を仕込んでおくのは誰がやらなきゃならないかというと、ユーザー側(ブラウザ上)で動作する Java Script ということになります。
テキストボックス上でマウスのボタンが押し上げられた時や、キーボードのキーが押し上げられた時に、ブラウザ上の別の隠しコントロールにカーソルの位置を数値で仕込むなどの動作が必要です。

先のサンプルのソースコードをよく見ると、テキストボックスの onmouseup や onkeyup イベントで pos() という Java Script の関数を呼び出しています。
ここでやっていることは n という変数に「テキストボックスに入っている文字列の右端から何文字目にカーソルがあるか」を格納しています。
これを利用し、n という変数ではなくて、非表示テキストボックスなどにでもカーソルの位置を仕込んでおけば、ボタンを押してポストバックが起こった時にサーバ側で「カーソルの位置」を非表示テキストボックスの値で取得することができます。
    • good
    • 0
この回答へのお礼

たいへんわかりやすい説明ありがとうございます!
Javaスクリプトをいれてみてやってみようとおもいます。

お礼日時:2006/05/05 16:57

これでどうでしょうか。


JavaScript のサンプル ページです。
http://mugi.cc/js/000603.htm

ご存知かとは思いますが、突っ込まれると痛いので先に。
ASP.NET アプリケーションですので、サーバからユーザーのブラウザに転送された HTML の中で動作するスクリプトの話になります。
したがって VB.NET のテクニックではなくて ユーザーのブラウザで動作する JavaScript のテクニックですね。
    • good
    • 0
この回答へのお礼

レスありがとうございます。
ユーザのブラウザで動作しなければ、できないのおでしょうか。Javaスクリプトは使ったことがなく厳しいです><

お礼日時:2006/05/01 19:18

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