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

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

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

Re[7]: ユーザコンポーネント単位でのカーソル制御


(過去ログ 29 を表示中)

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

■14067 / inTopicNo.1)  ユーザコンポーネント単位でのカーソル制御
  
□投稿者/ taguchi (1回)-(2008/02/08(Fri) 17:35:36)

分類:[C#] 

お伺いします。

言語:VC#2005(.Net FrameWork2.0)

ユーザコンポーネント(UserControl)内にTextBoxを配置し、
そのTextBox内でキー押下された場合に、
貼付け先であるフォーム上の次のコントロールへ
フォーカス移動をさせるコンポーネントを作成しようとしています。

public partial class HogeTextBox : UserControl
        :
       省略
        :
 private void textBox1_KeyDown(object sender, KeyEventArgs e)
 {
  this.SelectNextControl(Control)sender, true, true, true, true);
 }

}

しかし、コンポーネント内のオブジェクトに対してしか
SelectNextControlメソッドが働かず、カーソル移動してくれません。

ユーザコンポーネントを貼り付けた基本フォーム上でのカーソル遷移を行おうとしたい場合、
どのようにコーディングすればよろしいか、アドバイスいただけませんでしょうか?

宜しくお願い致します。

補足
#この質問はあるC#メーリングリストに投稿しましたが、
#回答が無かった為、こちらに投稿させて頂きました。
#マルチポストであると判断された場合は、削除、無視して頂いて結構です。
引用返信 編集キー/
■14068 / inTopicNo.2)  Re[1]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ 魔界の仮面弁士 (605回)-(2008/02/08(Fri) 17:50:08)
No14067 (taguchi さん) に返信
> しかし、コンポーネント内のオブジェクトに対してしか
> SelectNextControlメソッドが働かず、カーソル移動してくれません。

現在は、this すなわち UserControl の SelectNextControlメソッドを呼んでいますよね。

親コンテナ単位なら、Parent の SelectNextControlメソッドを。
フォーム単位になら、ParentForm の SelectNextControlメソッドを呼んでみてください。
引用返信 編集キー/
■14070 / inTopicNo.3)  Re[2]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ taguchi (2回)-(2008/02/08(Fri) 18:05:00)
taguchiです。
魔界の仮面弁士さん。
早速のアドバイス有難う御座います。

> 現在は、this すなわち UserControl の SelectNextControlメソッドを呼んでいますよね。
>
> 親コンテナ単位なら、Parent の SelectNextControlメソッドを。
> フォーム単位になら、ParentForm の SelectNextControlメソッドを呼んでみてください。

なるほど。
そんなコントロールがあったんですね。
Parentコントロールに変更して実行うすると上手く動きました。
有難う御座いました。

#この問題に数日悩んでいたのですが、
#いともあっさり解決できるとは流石、といいますか、
#私の不勉強が浮き彫りとなっていますね。
#これからも勉強、精進いたします。
#大変勉強になりました。
#また、お世話になるかもしれませんが(汗)
#どうぞ、宜しくお願い致します。
解決済み
引用返信 編集キー/
■14096 / inTopicNo.4)  Re[3]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ taguchi (3回)-(2008/02/08(Fri) 22:01:37)
再びtaguchiです。

コントロールをParentにしたら正常にカーソル遷移したので、
大喜びしていたのですが、逆にはカーソル遷移しません。


Parent.SelectNextControl((Control)sender, false, true, true, true);


その他サイトでも同じような記事があったのですが、解決していないようでした。
ユーザコンポーネント以外であれば逆にカーソルは飛ぶのですが、
UserControlを継承するとうまく飛んでくれません。

何かアドバイスありましたら宜しくお願い致します。

引用返信 編集キー/
■14097 / inTopicNo.5)  Re[4]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ 魔界の仮面弁士 (609回)-(2008/02/08(Fri) 23:31:05)
No14096 (taguchi さん) に返信
> コントロールをParentにしたら正常にカーソル遷移したので、

あれ? ParentForm では無くて良いのですか?
(作成した UserControl を GroupBox や Panel に載せた場合、期待動作していますか?)


> 大喜びしていたのですが、逆にはカーソル遷移しません。

これでどうかな。

 if(先頭コントロール)
 {
  ParentForm.SelectNextControl(this, false, true, true, true);
 }
 else
 {
  ParentForm.SelectNextControl((Control)sender, false, true, true, true);
 }
引用返信 編集キー/
■14099 / inTopicNo.6)  Re[5]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ taguchi (4回)-(2008/02/09(Sat) 00:51:05)
No14097 (魔界の仮面弁士 さん) に返信
> ■No14096 (taguchi さん) に返信
>>コントロールをParentにしたら正常にカーソル遷移したので、
>
> あれ? ParentForm では無くて良いのですか?
> (作成した UserControl を GroupBox や Panel に載せた場合、期待動作していますか?)
>
>
>>大喜びしていたのですが、逆にはカーソル遷移しません。
>
> これでどうかな。
>
>  if(先頭コントロール)
>  {
>   ParentForm.SelectNextControl(this, false, true, true, true);
>  }
>  else
>  {
>   ParentForm.SelectNextControl((Control)sender, false, true, true, true);
>  }
引用返信 編集キー/
■14101 / inTopicNo.7)  Re[6]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ taguchi (5回)-(2008/02/09(Sat) 00:57:12)
すいません。
まちがって操作したのか、変に送信されてしまいました。
上記は記事は無視してください。
------------------------------

taguchiです。
魔界の仮面弁士さん。
早速のアドバイス有難う御座います。

>あれ? ParentForm では無くて良いのですか?

あ、そうですね。
今の所、前に進む分には期待通りの動作をしています。

> if(先頭コントロール)
> {
>  ParentForm.SelectNextControl(this, false, true, true, true);
> }
> else
> {
>  ParentForm.SelectNextControl((Control)sender, false, true, true, true);
> }

有難うございます。ParentFormで試してみたいと思います。
現在環境が無いのでとりあえずお返事まで。
結果、またご報告させて頂きます。

草々

引用返信 編集キー/
■14119 / inTopicNo.8)  Re[7]: ユーザコンポーネント単位でのカーソル制御
□投稿者/ taguchi (6回)-(2008/02/09(Sat) 13:15:22)
taguchiです。

早速試してみた所、

ParentForm.SelectNextControl(this, false, true, true, true);

で、上手く動くようになりました。
先頭コントロールでも、このコーディングで今の所
期待した動きをしてくれています。
有難う御座いました!

魔界の仮面弁士さん、的確なアドバイス有難う御座いました。
また(汗)よろしくお願い致します。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -