- PR -

フォーカスとカーソルについて

1
投稿者投稿内容
うさこ
会議室デビュー日: 2004/05/28
投稿数: 6
投稿日時: 2004-06-16 10:06
こんにちは。
私は今C#でウィンドウアプリケーションの開発をしています。
親フォームと子フォームA,Bがあり、子フォームAがイベントを起こすと、子フォームBが呼び出され、子フォームBのコンボボックスにフォーカスをもってくるというところまでプログラムしました。
しかし、子フォームAから、Bを呼び出し、画面も最前面にもってこれるのに、子フォームBを一回も触らずそのままTabを動かすと、子フォームAでカーソルが動いています。
なぜでしょうか
hogehoge
会議室デビュー日: 2004/05/24
投稿数: 8
投稿日時: 2004-06-16 15:46
問題なく出来るんですけど、もう少し詳細を教えてください。
うさこ
会議室デビュー日: 2004/05/28
投稿数: 6
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)