- - PR -
フォーカスとカーソルについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-16 10:06
こんにちは。
私は今C#でウィンドウアプリケーションの開発をしています。 親フォームと子フォームA,Bがあり、子フォームAがイベントを起こすと、子フォームBが呼び出され、子フォームBのコンボボックスにフォーカスをもってくるというところまでプログラムしました。 しかし、子フォームAから、Bを呼び出し、画面も最前面にもってこれるのに、子フォームBを一回も触らずそのままTabを動かすと、子フォームAでカーソルが動いています。 なぜでしょうか |
|
投稿日時: 2004-06-16 15:46
問題なく出来るんですけど、もう少し詳細を教えてください。
|
|
投稿日時: 2004-06-16 18:39
お返事ありがとうございます。
もう少し詳しく説明したいとおもいます。 子フレームBのセルをダブルクリックすると、親フレームのFrmA(String SelDenpyoNO)メソッドを使って、子フレームAを呼び出します。 メソッドFrmAの機能としては、子フレームAがnewされていなかったらnewし、されていたらそのフレームをアクティブにします。それからFrmAのメソッドを使って子フレームBのセルの値をわ たします。 子フレームAのsetCode(string code)メソッドでは、子フレームBのセルの値をTextboxに格納し、そしてコンボボックスにフォーカスを設定しています。 で、うまくいかないのは、子フレームAが呼び出されたときに(もちろん最善面)一回マウスで子フレームをクリックするとコンボボックスにカーソルもフォーカスもあるのですが、 子フォームAを呼び出して、そのままタブを押すと、子フォームBのカーソルが(背面)でうごいてしまうのです。 文章が下手なの意味がわからなかったらごめんなさい。 以下の文はそれぞれに関わると思うソースを抜き出したものです。 /*****子フレームBのソース*****/ private void CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) { /*省略*/ //親のフレームのメッソッドを使う ((FrmFrame)this.MdiParent).FrmA(this.TxtDenNO.Text); } /*****親フレームのソース******/ /// <summary> ///フレームAを呼び出す /// </summary> public void FrmA(string SelDenpyoNO) { if(getExistStatus(frmEstimate) == false) //フレームAがnewされてるかチェック { frmA = new FrmA(); frmA.MdiParent = this; frmA.Show(); } else { frmA.Activate(); } frmA.setCode(SelDenpyoNO); } /******子フレームAのソース*******/ /// <summary> /// 親フォームからデータをもらう /// </summary> public void setCode(string code) { txtCode.Text = code; txtCode.Focus(); // cmbBox.Focus(); //ここにカーソルをもってきたい。 } |
1