• ベストアンサー

VB.NETのテキストボックスで、カーソル位置に文字を入れたいのですが、どうすればいいのでしょうか

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> ユーザのブラウザで動作しなければ、できないのおでしょうか。Javaスクリプトは使ったことがなく厳しいです こればっかりはねぇ。 1. ボタンを押す。 2. テキストボックスに文字を挿入する。 3. テキストボックスに文字が挿入された結果をユーザーが目にする。 ASP.NET ですので、この流れの間に無理矢理サーバへの通信を入れることはできます。ASP.NET で言うところの「ポストバック」ってやつですね。 にしても、サーバ側で「テキストボックス上のカーソルの位置」を何らかの形で取得しなくてはいけません。 サーバ側ではテキストボックスの値は取得できますが、テキストボックスからカーソルの位置を取得することはできませんので「別の何か」に格納されている値として取得するしかありません。 では、「別の何か」にカーソルの位置を仕込んでおくのは誰がやらなきゃならないかというと、ユーザー側(ブラウザ上)で動作する Java Script ということになります。 テキストボックス上でマウスのボタンが押し上げられた時や、キーボードのキーが押し上げられた時に、ブラウザ上の別の隠しコントロールにカーソルの位置を数値で仕込むなどの動作が必要です。 先のサンプルのソースコードをよく見ると、テキストボックスの onmouseup や onkeyup イベントで pos() という Java Script の関数を呼び出しています。 ここでやっていることは n という変数に「テキストボックスに入っている文字列の右端から何文字目にカーソルがあるか」を格納しています。 これを利用し、n という変数ではなくて、非表示テキストボックスなどにでもカーソルの位置を仕込んでおけば、ボタンを押してポストバックが起こった時にサーバ側で「カーソルの位置」を非表示テキストボックスの値で取得することができます。

Haule
質問者

お礼

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

その他の回答 (1)

回答No.1

これでどうでしょうか。 JavaScript のサンプル ページです。 http://mugi.cc/js/000603.htm ご存知かとは思いますが、突っ込まれると痛いので先に。 ASP.NET アプリケーションですので、サーバからユーザーのブラウザに転送された HTML の中で動作するスクリプトの話になります。 したがって VB.NET のテクニックではなくて ユーザーのブラウザで動作する JavaScript のテクニックですね。

Haule
質問者

お礼

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

関連するQ&A

専門家に質問してみよう