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

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

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

Re[6]: VB2008のDataRepeaterについて教えてください


(過去ログ 50 を表示中)

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

■27156 / inTopicNo.1)  VB2008のDataRepeaterについて教えてください
  
□投稿者/ サンタ (1回)-(2008/10/29(Wed) 18:19:32)

分類:[.NET 全般] 

VB2008

初心者です。
DataRepeaterにTextBoxが置いてあります。編集後、再度選択したときに
Text内の文字を全選択したいのですが、どのようにすればよいでしょうか?
すいませんが、どなたかお教えください。
引用返信 編集キー/
■27158 / inTopicNo.2)  Re[1]: VB2008のDataRepeaterについて教えてください
□投稿者/ やじゅ (728回)-(2008/10/29(Wed) 20:01:34)
やじゅ さんの Web サイト
No27156 (サンタ さん) に返信
> DataRepeaterにTextBoxが置いてあります。編集後、再度選択したときに
> Text内の文字を全選択したいのですが、どのようにすればよいでしょうか?

DataRepeater自体は関係しない気がしますが、使ったことが無いので・・・
TextBoxを全選択状態するなら、下記のメソッドを使ってください。

' TextBox1 のテキストを全選択状態にする
Me.TextBox1.SelectAll()

引用返信 編集キー/
■27185 / inTopicNo.3)  Re[2]: VB2008のDataRepeaterについて教えてください
□投稿者/ サンタ (2回)-(2008/10/30(Thu) 08:14:54)
No27158 (やじゅ さん) に返信

やじゅさんレスありがとうございます。

> ' TextBox1 のテキストを全選択状態にする
> Me.TextBox1.SelectAll()
>

ご指摘の方法は試してみましたが、編集後の場合は全選択状態にはならないみたいです。
(レコードを移動したあとは選択されるのですが、同一レコード内で移動した場合には全選択になりません。)

何か他の方法は御座いませんでしょうか?
引用返信 編集キー/
■27188 / inTopicNo.4)  Re[3]: VB2008のDataRepeaterについて教えてください
□投稿者/ みきぬ (187回)-(2008/10/30(Thu) 09:26:53)
No27185 (サンタ さん) に返信
> 何か他の方法は御座いませんでしょうか?

JavaScript を使って、

<input type="text" onfocus="this.select()">

のようにすればいけると思います。
そのためには、例えば Page.Load イベントで

TextBox1.Attributes.Add("onfocus", "this.select();")

のように書けばいいのですが、DataRepeater内のTextBoxの場合は…どうやればよかったっけなぁ?

引用返信 編集キー/
■27192 / inTopicNo.5)  Re[4]: VB2008のDataRepeaterについて教えてください
□投稿者/ サンタ (3回)-(2008/10/30(Thu) 10:37:43)
No27188 (みきぬ さん) に返信

みきぬさんご回答ありがとうございます。

> JavaScript を使って、
>
> <input type="text" onfocus="this.select()">
>
> のようにすればいけると思います。
> そのためには、例えば Page.Load イベントで
>
> TextBox1.Attributes.Add("onfocus", "this.select();")
>
> のように書けばいいのですが、DataRepeater内のTextBoxの場合は…どうやればよかったっけなぁ?
>

Windows.Form上でJavaScriptは使用できるのでしょうか?

引用返信 編集キー/
■27195 / inTopicNo.6)  Re[5]: VB2008のDataRepeaterについて教えてください
□投稿者/ みきぬ (189回)-(2008/10/30(Thu) 10:51:27)
No27192 (サンタ さん) に返信
> Windows.Form上でJavaScriptは使用できるのでしょうか?
>
orz

すいません、ASP.NETだと思いっきり勘違いしてました…。
引用返信 編集キー/
■27197 / inTopicNo.7)  Re[3]: VB2008のDataRepeaterについて教えてください
□投稿者/ みきぬ (190回)-(2008/10/30(Thu) 11:09:16)
No27185 (サンタ さん) に返信
> ご指摘の方法は試してみましたが、編集後の場合は全選択状態にはならないみたいです。
> (レコードを移動したあとは選択されるのですが、同一レコード内で移動した場合には全選択になりません。)
>
> 何か他の方法は御座いませんでしょうか?
>
他の方法より先に、今の方法はどうされてるのかなーってのを教えてもらえるとありがたいかも。
SelectAll をどこで実行しているんですか?
引用返信 編集キー/
■27219 / inTopicNo.8)  Re[4]: VB2008のDataRepeaterについて教えてください
□投稿者/ サンタ (4回)-(2008/10/30(Thu) 15:18:20)
No27197 (みきぬ さん) に返信

みきぬさんレスありがとうございます。

> 他の方法より先に、今の方法はどうされてるのかなーってのを教えてもらえるとありがたいかも。
> SelectAll をどこで実行しているんですか?

ごもっともですね。
現在は、FormのDataRepeater以外はSelectAllで選択できるようになっています。
DataRepeater内では使用できないので、
とても不細工になりましたが、下記のコードを使用してみました。

        If DataRepeater1.CurrentItemIndex = Ri - 1 Then
            DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex - 1
            DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex + 1
        Else
            DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex + 1
            DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex - 1
        End If
「Ri」はレコードの数です。

このコードをDataRepeater内の各テキストを編集したときに使用してレコードを
確定する。 ということをしています。
一応これで全選択は出来ているのですが、もっとスマートな方法はないかな?
と、思います。

何か良い方法が御座いましたらよろしくお願いします。

引用返信 編集キー/
■27250 / inTopicNo.9)  Re[5]: VB2008のDataRepeaterについて教えてください
□投稿者/ みきぬ (192回)-(2008/10/31(Fri) 10:42:18)
No27219 (サンタ さん) に返信
> If DataRepeater1.CurrentItemIndex = Ri - 1 Then
> DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex - 1
> DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex + 1
> Else
> DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex + 1
> DataRepeater1.CurrentItemIndex = Me.DataRepeater1.CurrentItemIndex - 1
> End If
> 「Ri」はレコードの数です。
>
> このコードをDataRepeater内の各テキストを編集したときに使用してレコードを
> 確定する。 ということをしています。

【予想したこと】
・上の処理があるのは TextBox.TextChanged イベントである
・上の処理の意図は、同じ DataRepeater 内の Item を選択した場合には DataRepeater.CurrentItemIndexChanged イベントが発生しないので、CurrentItemIndex を動かしてイベントを発生させるということにある
・TextBox.SelectAll() を実行しているのは、DataRepeater.CurrentItemIndexChanged イベントである

【わからないこと】
・DataRepeater の Item を選択すると、Item がハイライトされる?
・そのときに、TextBox 内の Text も全選択されてほしい?
・「各テキスト」ということは、もしかして DataRepeater の TemplateItem 内には、複数の TextBox がある?
・DataRepeater 内の Item を選択したときに、それら TextBox すべてが全選択状態になってほしい?
・最初の質問文に「テキストを編集した後、再度選択したときに」とあるが、再度選択するのは誰?(勝手になる? ユーザがクリックする?)

1日考えても回答がまとまらなかったのですが、何も返信しないよりはいいだろうということで、すみませんがこのまま投稿します。
DataRepeater を見たことも使ったこともないので、これが私の限界…。
引用返信 編集キー/
■27270 / inTopicNo.10)  Re[6]: VB2008のDataRepeaterについて教えてください
□投稿者/ サンタ (5回)-(2008/11/01(Sat) 09:24:47)
No27250 (みきぬ さん) に返信

返信が遅くなりました。すいません。

> 【予想したこと】
> ・上の処理があるのは TextBox.TextChanged イベントである
> ・上の処理の意図は、同じ DataRepeater 内の Item を選択した場合には DataRepeater.CurrentItemIndexChanged イベントが発生しないので、CurrentItemIndex を動かしてイベントを発生させるということにある
> ・TextBox.SelectAll() を実行しているのは、DataRepeater.CurrentItemIndexChanged イベントである
>
> 【わからないこと】
> ・DataRepeater の Item を選択すると、Item がハイライトされる?
> ・そのときに、TextBox 内の Text も全選択されてほしい?
> ・「各テキスト」ということは、もしかして DataRepeater の TemplateItem 内には、複数の TextBox がある?
> ・DataRepeater 内の Item を選択したときに、それら TextBox すべてが全選択状態になってほしい?
> ・最初の質問文に「テキストを編集した後、再度選択したときに」とあるが、再度選択するのは誰?(勝手になる? ユーザがクリックする?)
>
> 1日考えても回答がまとまらなかったのですが、何も返信しないよりはいいだろうということで、すみませんがこのまま投稿します。
> DataRepeater を見たことも使ったこともないので、これが私の限界…。

上の処理をしているのは、TextBox.LostFocus時です。
因みにTextBox.SelectAll()はDataRepeater内のコントロールには使用できません。

「DataRepeater内にTextBoxが三つあるとして、フォーカスが移って来た時は全選択されています。
Textを変更してEnterで移動させて、Shift + Enterで戻しても全選択されません。」
全選択をするために上記の処理をしています。


引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -