- 1co
- 常連さん
- 会議室デビュー日: 2005/08/10
- 投稿数: 39
|
投稿日時: 2005-08-10 14:49
引用: |
|
なおこ(・∀・)さんの書き込み (2005-08-10 13:32) より:
引用: |
|
control.selectnextcontrol()
|
上記のような動きよいのであれば
#じゃんぬさんがそれは違いますよねって,確認していらっしゃいますが(汗
PanelにAddした最初のコントロールにフォーカスをセットする事は
できました。かなり無理やりっぽいですがw
●TreeView.AfterSelectのコード
Me.Panel1.Controls.Clear()
Dim t As TextBox = New TextBox
t.Text = e.Node.Text
Me.Panel1.Controls.Add(t)
SendKeys.Send("{Tab}")
お役に立てなくてすみません…
|
なおこさん、
とんでもないです。
いろいろとアドバイスありがとうございました。
なおこさん、じゃんぬさんのアドバイスを参考に
いろいろコードを変更してみます。
お忙しいところありがとうございました。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-08-10 14:49
引用: |
|
■マウスクリック時
フォーカスがRootNodeに移動
■キー操作時
フォーカスがcontrol.focus()のControlに移動
という結果になってしまいました。
恐れ入りますが、別の回避策をご存知でしたら教えてください。
|
どうも、Node を持っているとダメのようですね。
SelectedNode が変わる時点でフォーカスもムリに奪うみたいですし... orz
コード: |
|
Select Case e.Action
Case TreeViewAction.ByMouse
SendKeys.Send("{Tab}")
Me.Button1.Focus()
Case TreeViewAction.ByKeyboard
Me.Button1.Focus()
End Select
|
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- 1co
- 常連さん
- 会議室デビュー日: 2005/08/10
- 投稿数: 39
|
投稿日時: 2005-08-10 14:59
引用: |
|
どうも、Node を持っているとダメのようですね。
SelectedNode が変わる時点でフォーカスもムリに奪うみたいですし... orz
|
TreeViewを使う限り、しかたのかいことなのでしょうか。。
いろいろとアドバイスありがとうございました。
ほかのコントロールへの置き換えも含め、
いろいろ検討してみます。
|
- trapemiya
- 大ベテラン
- 会議室デビュー日: 2005/07/30
- 投稿数: 102
|
投稿日時: 2005-08-10 18:06
思いつきで全く試していませんが、フォームのActiveControlプロパティにボタンをセットしてみたらいかがでしょうか?
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-08-10 18:42
こんにちは、じゃんぬ です。
引用: |
|
trapemiyaさんの書き込み (2005-08-10 18:06) より:
思いつきで全く試していませんが、フォームのActiveControlプロパティにボタンをセットしてみたらいかがでしょうか?
|
Me.ActiveControl = Nothing で逃がしたところで、
Node を掴んでると無視されます。
それどころか、Me.Button1.Focus() の戻り値が True なのが憎いでしw
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- 1co
- 常連さん
- 会議室デビュー日: 2005/08/10
- 投稿数: 39
|
投稿日時: 2005-08-10 18:47
引用: |
|
trapemiyaさんの書き込み (2005-08-10 18:06) より:
思いつきで全く試していませんが、フォームのActiveControlプロパティにボタンをセットしてみたらいかがでしょうか?
|
アドバイスありがとうございます。
試してみましたが、うまくいきませんでした。。
タイミングの問題かもしれませんので、もう少し調べて見ます。
|
- nanbu
- 大ベテラン
- 会議室デビュー日: 2004/08/19
- 投稿数: 178
|
投稿日時: 2005-08-11 01:23
南部です。
もどかしさ爆発ですね。
強引ですが、なんとなく動いているっぽいです。
検証はしてませんのであしからず。
コード: |
|
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if(e.Action == TreeViewAction.ByMouse)
{
Application.Idle += new EventHandler(Application_Idle);
}
}
private void Application_Idle(object sender, EventArgs e)
{
Application.Idle -= new EventHandler(Application_Idle);
button1.Focus();
}
|
|
- 1co
- 常連さん
- 会議室デビュー日: 2005/08/10
- 投稿数: 39
|
投稿日時: 2005-08-11 10:34
引用: |
|
nanbuさんの書き込み (2005-08-11 01:23) より:
南部です。
もどかしさ爆発ですね。
強引ですが、なんとなく動いているっぽいです。
検証はしてませんのであしからず。
コード: |
|
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if(e.Action == TreeViewAction.ByMouse)
{
Application.Idle += new EventHandler(Application_Idle);
}
}
private void Application_Idle(object sender, EventArgs e)
{
Application.Idle -= new EventHandler(Application_Idle);
button1.Focus();
}
|
|
南部さん、ありがとうございます。
VB.netコードに変換して実行したところ、
Nodeのマウスクリック・キー操作とも
Focusを遷移させることができました!
本当にありがとうございました。
|