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

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

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

Re[1]: データグリッドのフォーカス取得


(過去ログ 33 を表示中)

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

■15994 / inTopicNo.1)  データグリッドのフォーカス取得
  
□投稿者/ ビギナ (6回)-(2008/03/26(Wed) 15:26:29)

分類:[C#] 

VS2005(C#)でプログラムをくんでいます。
検索、置換のソフトを作りたいのですが、そこで
(例)検索したい文字「あ」で、(検索先)データグリッドにtxtファイルを読み込み、その中から
検索したい文字「あ」を含んでいるセルの「あ」にだけフォーカスをあてたいのですが…。
「あ」のあるセルは選択できますが、そのセルの値(文字列)全てにフォーカスがあたってしまいます。
いろいろなHPを探しましたが、わかりません。
どなたか是非お教えくださいお願いします。

引用返信 編集キー/
■15995 / inTopicNo.2)  Re[1]: データグリッドのフォーカス取得
□投稿者/ 774RR (144回)-(2008/03/26(Wed) 15:38:08)
まずは仕様を考えることだ

「あ」を含むセルが1つもない場合どうなるべきか
「あ」を含むセルが2つ以上ある場合どうなるべきか
「あ」が同一セル内に複数個ある場合どうなるべきか

それは俺たち読者の仕事ぢゃない

その上でどう実装するとよいか考えようぜ
引用返信 編集キー/
■16000 / inTopicNo.3)  Re[2]: データグリッドのフォーカス取得
□投稿者/ はつね (542回)-(2008/03/26(Wed) 17:10:11)
はつね さんの Web サイト
http://bbs.wankuma.com/index.cgi?mode=al2&namber=15971

でテキストボックスで行ったのと同じ動きをDataGridで行いたいって事ですね。
# VS2005(C#)でWindowsアプリでOK?

DataGridでどーやるのか調べないと分からんので、私の回答はちょっと遅れます。
きっと、有識者の人がその間にぱぱーっと「できるぜ」「できないぜ」とか回答くれたりしないかな〜と期待。


引用返信 編集キー/
■16005 / inTopicNo.4)  Re[3]: データグリッドのフォーカス取得
□投稿者/ ビギナ (7回)-(2008/03/26(Wed) 17:44:33)
No16000 (はつね さん) に返信
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=15971
>
> でテキストボックスで行ったのと同じ動きをDataGridで行いたいって事ですね。
> # VS2005(C#)でWindowsアプリでOK?
>
> DataGridでどーやるのか調べないと分からんので、私の回答はちょっと遅れます。
> きっと、有識者の人がその間にぱぱーっと「できるぜ」「できないぜ」とか回答くれたりしないかな〜と期待。
>


Windowsアプリです。
本当に協力有難う御座います。
私も引き続きHPなどで調べてみます。
引用返信 編集キー/
■16060 / inTopicNo.5)  Re[4]: データグリッドのフォーカス取得
□投稿者/ ビギナ (8回)-(2008/03/27(Thu) 16:21:45)
No16005 (ビギナ さん) に返信
> ■No16000 (はつね さん) に返信
>>http://bbs.wankuma.com/index.cgi?mode=al2&namber=15971
>>
>>でテキストボックスで行ったのと同じ動きをDataGridで行いたいって事ですね。
>># VS2005(C#)でWindowsアプリでOK?
>>
>>DataGridでどーやるのか調べないと分からんので、私の回答はちょっと遅れます。
>>きっと、有識者の人がその間にぱぱーっと「できるぜ」「できないぜ」とか回答くれたりしないかな〜と期待。
>>
>
>
有識者の人がいないようです…。
ここまではできましたが、成果が得られません
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
DataGridView dgv = (DataGridView)sender;

TextBox tb = (TextBox)e.Control;
tb.HideSelection = false;

int index = tb.Text.IndexOf(textBox1 .Text);
if (index >= 0)
{
tb.SelectionStart = index;
tb.SelectionLength = textBox1 .Text .Length;
}
}
}


引用返信 編集キー/
■16075 / inTopicNo.6)  Re[1]: データグリッドのフォーカス取得
□投稿者/ (報告) (2回)-(2008/03/27(Thu) 18:47:21)
マルチポスト
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=21727&rev=&no=0
http://www.ailight.jp/BBS/Detail.aspx?Header_ID=2400
引用返信 編集キー/
■16093 / inTopicNo.7)  Re[5]: データグリッドのフォーカス取得
□投稿者/ 見物人 (2回)-(2008/03/27(Thu) 22:42:32)
No16060 (ビギナ さん) に返信
> 有識者の人がいないようです…。

いやみが通じないとはさすがすぎる。
引用返信 編集キー/
■16168 / inTopicNo.8)  Re[3]: データグリッドのフォーカス取得
□投稿者/ はつね (546回)-(2008/03/29(Sat) 07:46:08)
No16000 (はつね さん) に返信
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=15971
>
> でテキストボックスで行ったのと同じ動きをDataGridで行いたいって事ですね。
> # VS2005(C#)でWindowsアプリでOK?
>
> DataGridでどーやるのか調べないと分からんので、私の回答はちょっと遅れます。

操作性とかテキストボックスとの相違をどうするかにより実装かわってきますね。
774RRさんも書かれていますがテキストボックスとの相違点としては
・「あ」を含むセルが1つもない場合どうなるべきか
・「あ」を含むセルが2つ以上ある場合どうなるべきか
などが新たな仕様決定事項ですね。

例えば、DataGrid(というかDataGridViewの方ね)でセルの中の文字列の中から特定文字を選択するためには、
(1) そのセルを選択
(2) 文字列を選択(←そのためにはそのセルの編集開始をする必要あり?)
という動きになります。この動きのときに特定文字選択の状態で編集開始したいという事であれば、次のような考え方で実現できるかも知れません。

編集開始はBeginEditメソッドで、その引数として「文字列選択なし」か「文字列全選択」が選べるようになっています。よって、特定の文字列を選択するためには、BeginEditメソッドをoverrideするか、BeginEditメソッドにより呼び出されているところのどっかをoverrideして独自仕様を追加してあげないといけなそうな感じです。

引用返信 編集キー/
■16214 / inTopicNo.9)  Re[4]: データグリッドのフォーカス取得
□投稿者/ ビギナ (9回)-(2008/03/31(Mon) 18:49:38)
No16168 (はつね さん) に返信
> ■No16000 (はつね さん) に返信
>>http://bbs.wankuma.com/index.cgi?mode=al2&namber=15971
>>
>>でテキストボックスで行ったのと同じ動きをDataGridで行いたいって事ですね。
>># VS2005(C#)でWindowsアプリでOK?
>>
>>DataGridでどーやるのか調べないと分からんので、私の回答はちょっと遅れます。
>
> 操作性とかテキストボックスとの相違をどうするかにより実装かわってきますね。
> 774RRさんも書かれていますがテキストボックスとの相違点としては
> ・「あ」を含むセルが1つもない場合どうなるべきか
> ・「あ」を含むセルが2つ以上ある場合どうなるべきか
> などが新たな仕様決定事項ですね。
>
> 例えば、DataGrid(というかDataGridViewの方ね)でセルの中の文字列の中から特定文字を選択するためには、
> (1) そのセルを選択
> (2) 文字列を選択(←そのためにはそのセルの編集開始をする必要あり?)
> という動きになります。この動きのときに特定文字選択の状態で編集開始したいという事であれば、次のような考え方で実現できるかも知れません。
>
> 編集開始はBeginEditメソッドで、その引数として「文字列選択なし」か「文字列全選択」が選べるようになっています。よって、特定の文字列を選択するためには、BeginEditメソッドをoverrideするか、BeginEditメソッドにより呼び出されているところのどっかをoverrideして独自仕様を追加してあげないといけなそうな感じです。


ここまで調べて頂いて本当に感謝してます。
有難う御座います。
BeginEditメソッドをoverrideするには…から調べて頑張ります。
必ず仕上げて見せようと思っています
有難う御座いました。




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


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

このトピックに書きこむ

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

管理者用

- Child Tree -