全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3781
推到 Plurk!
推到 Facebook!

TreeView如何指定某個Node被選取

答題得分者是:careychen
aconxu
一般會員


發表:18
回覆:41
積分:11
註冊:2006-12-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-19 14:21:08 IP:60.250.xxx.xxx 訂閱
Dear all ,

想請問大家~

當TreeView顯示時~
是否可以在滑鼠點選前~先指定treeview中的某個node被選取~
感覺就像用滑鼠點選一樣~

謝謝~
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-19 15:39:03 IP:61.219.xxx.xxx 未訂閱
可以先用TreeView的On Mouse Down事件
裡面的程式碼可以用

[code cpp]
// 取得目前滑鼠選取的TreeNode結點
TTreeNode* ClickNode = TreeView1->GetNodeAt(X, Y);

//選取ClickNode結點
TreeView1->Selected=ClickNode;

//如果有開MultiSelect,還可以做以下應用
//1.取消選取
TreeView1->Deselect(ClickNode);
//2.多選選取(模擬左鍵選取)
TreeView1->Select(ClickNode, ssLeft);
[/code]
aconxu
一般會員


發表:18
回覆:41
積分:11
註冊:2006-12-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-19 16:23:53 IP:60.250.xxx.xxx 訂閱
Dear daldal ,

你的意思是在TreeView --FormShow時呼叫TreeView1MouseDown
這樣的話我需要知道該Node的座標才行~
我會試試看~

不知道有沒有什麼只需要知道~
Node的level或index就可以讓Node被選取的方法~

謝謝
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-19 16:54:46 IP:61.219.xxx.xxx 未訂閱
那就更單純囉~^^
裡面的Item[index], index就是第幾個Node, 從0開始

[code cpp]
//第幾個index被選取
TreeView1->Selected= TreeView1->Items->Item[index];
[/code]

至於用Level選取的方式要配合多選
因為一個Level值可能對應到多個Node, 沒有唯一性
編輯記錄
daldal 重新編輯於 2008-11-19 16:55:28, 註解 無‧
aconxu
一般會員


發表:18
回覆:41
積分:11
註冊:2006-12-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-19 18:40:34 IP:60.250.xxx.xxx 訂閱
Dear daldal ,

感謝你的幫忙~
你的第二個方法~
我之前試過~
是可以有點選的效果~(讓需要點選該node而觸發的even觸發了)
但是~我希望可以有有像用滑鼠點選Node那樣~
被點選的Node可以有反藍的效果~
不知道有沒有可能呢???
謝謝~
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-19 18:57:35 IP:60.248.xxx.xxx 訂閱
一種是把 Treeview 的屬性 HideSelection  設為 False  ,這樣的話 Treeview 在沒有 Focus 時會秀灰色的
如果希望是秀藍色的話,那就加個 Treeview1->SetFocus();
===================引 用 aconxu 文 章===================
Dear daldal ,

感謝你的幫忙~
你的第二個方法~
我之前試過~
是可以有點選的效果~(讓需要點選該node而觸發的even觸發了)
但是~我希望可以有有像用滑鼠點選Node那樣~
被點選的Node可以有反藍的效果~
不知道有沒有可能呢???
謝謝~
------
價值的展現,來自於你用哪一個角度來看待它!!
aconxu
一般會員


發表:18
回覆:41
積分:11
註冊:2006-12-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-11-19 20:49:41 IP:60.250.xxx.xxx 訂閱
Dear all ,

感謝你們的幫忙~
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta content="Word.Document" name="ProgId" /><meta content="Microsoft Word 11" name="Generator" /><meta content="Microsoft Word 11" name="Originator" /><link href="file:///C:\DOCUME~1\ZITO~1.CHE\LOCALS~1\Temp\msohtml1\01\clip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml> Normal 0 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><xml> </xml><![endif]--><style type="text/css"> <!-- /* Font Definitions */ @font-face {font-family:新細明體; panose-1:2 2 3 0 0 0 0 0 0 0; mso-font-alt:PMingLiU; mso-font-charset:136; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:3 137232384 22 0 1048577 0;} @font-face {font-family:"\@新細明體"; panose-1:2 2 3 0 0 0 0 0 0 0; mso-font-charset:136; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:none; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:新細明體; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:18.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:表格內文; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style>
需要~該node呈現被點選的樣子時~就使用下列方式
TreeView1->Selected=
TreeView1->Items->Item[Index];

TreeView1->SetFocus();

這是二位大大的幫忙而成的~
但是分數只能給一個人~
很苦腦~
不管如何~都感覺二位的幫忙~


系統時間:2017-11-19 18:19:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!