如何自動選擇ComboBox,ListBox,FilterComboBox等等裡面的選項? |
尚未結案
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
Sorry.我沒講好我的需求.
假設我的ComboBox的ItemIndex決定之後,要馬上做ListBox新增的動作,那該如何使用?
FilterListBox和FileListBox也是要做同樣的動作,在FormCreate時做出
FilterListBox選擇,在FileListBox馬上列出所要的檔案類型. 底下的範例該怎麼修改才能達到我的需求?
void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add("1"); ComboBox1->Items->Add("2"); ComboBox1->Items->Add("3"); ComboBox1->ItemIndex=1; FilterComboBox1->Filter="1|*.exe|2|*.obj"; FilterComboBox1->FileList=FileListBox1; FilterComboBox1->ItemIndex=0; } void __fastcall TForm1::ComboBox1Select(TObject *Sender) { switch (ComboBox1->ItemIndex) { case 0: ListBox1->Items->Add("1"); break; case 1: ListBox1->Items->Add("2"); break; case 2: ListBox1->Items->Add("3"); } }可否指導一下,謝謝. |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
nlj859您好:
試試看是否是您要的,FilterComboBox,FileListBox同理可證
//--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1Select(TObject *Sender) { ListBox1->Items->Add(ComboBox1->Text); } //--------------------------------------------------------------------------- /*生活是一種藝術,用心生活享受生活*/ |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Items->Add("1");
ComboBox1->Items->Add("2");
ComboBox1->Items->Add("3");
ComboBox1->ItemIndex=1; FilterComboBox1->Filter="1|*.exe|2|*.obj";
FilterComboBox1->FileList=FileListBox1;
FilterComboBox1->ItemIndex=0;
FileListBox1->Mask=FilterComboBox1->Mask;
}
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
ListBox1->Items->Add(ComboBox1->Text); // axsoft版主
FileListBox1->Mask=FilterComboBox1->Mask;
}
不知是否是你要的? Andy Chang
------
Andy Chang |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
恩,如果是FilterComboBox和FileListBox可以使用下列方法做到.
void __fastcall TForm1::FormCreate(TObject *Sender) { FilterComboBox1->Filter="1|*.exe|2|*.obj"; FilterComboBox1->FileList=FileListBox1; FilterComboBox1->ItemIndex=1; FileListBox1->Mask=FilterComboBox1->Mask; }但在ComboBox和ListBox該怎麼做到呢? thx |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
恩,如果是FilterComboBox和FileListBox可以使用下列方法做到.
void __fastcall TForm1::FormCreate(TObject *Sender) { FilterComboBox1->Filter="1|*.exe|2|*.obj"; FilterComboBox1->FileList=FileListBox1; FilterComboBox1->ItemIndex=1; FileListBox1->Mask=FilterComboBox1->Mask; }但在ComboBox和ListBox該怎麼做到呢? 我Compile會出現[C Warning] Unit1.cpp(35): W8066 Unreachable code的Warning Message,沒辦法秀出ComboBox1->ItemIndex. void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add("1"); ComboBox1->Items->Add("2"); ComboBox1->Items->Add("3"); ComboBox1->ItemIndex=1; } void __fastcall TForm1::ComboBox1Select(TObject *Sender) { switch (ComboBox1->ItemIndex) { ShowMessage(ComboBox1->ItemIndex); case 0: ListBox1->Items->Add("1"); break; case 1: ListBox1->Items->Add("2"); break; case 2: ListBox1->Items->Add("3"); } }thx 發表人 - nlj859 於 2004/08/10 17:11:09 |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
ListBox也是使用ItemIndex
ListBox1->ItemIndex=ComboBox1->ItemIndex;
但相對映的關係要處理好
ComboBox1->Items->Add("1");
ComboBox1->Items->Add("2");
ComboBox1->Items->Add("3");
ListBox1->Items->Add("1");
ListBox1->Items->Add("2");
ListBox1->Items->Add("3"); Andy Chang
------
Andy Chang |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
似乎不行.
一開始我的ComboBox裡面有3個Item,ListBox裡面現在一個都沒有.
假設我選了第2項(即ComboBox1->IemIndex=1).ListBox裡面會增加一個"2".
現在只需管ComboBox的設定就好.(滑鼠選擇改為程式去選擇,完全不用滑鼠去選擇),以底下範例該如何去做修改?所講的ListBox1->itemIndex=ComboBox1->ItemIndex;該加到哪裡?
void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add("1"); ComboBox1->Items->Add("2"); ComboBox1->Items->Add("3"); ComboBox1->ItemIndex=1; //假設選了第2項 ShowMessage(ComboBox1->ItemIndex); //可以秀出1 } void __fastcall TForm1::ComboBox1Select(TObject *Sender) { switch (ComboBox1->ItemIndex) { case 0: ListBox1->Items->Add("1"); break; case 1: ListBox1->Items->Add("2"); ShowMessage(ComboBox1->ItemIndex); //沒辦法秀出1 break; case 2: ListBox1->Items->Add("3"); } }我表達可能不太清楚,請見諒. Thx. 發表人 - nlj859 於 2004/08/10 17:49:42 |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
nlj859:山不轉路轉換個方式表達試試!
void __fastcall TForm1::ComboBox1Select(TObject *Sender) { bool TF=false; for (int i=0;i< ListBox1->Items->Count;i ) { if (ListBox1->Items->Strings[i] == ComboBox1->Text) { ListBox1->ItemIndex=i; TF=true; } } if (! TF) { ListBox1->Items->Add(ComboBox1->Text); ListBox1->ItemIndex=ListBox1->Items->Count-1; } } 請參考 你選中的ComboBox1傳到ListBox1上除了檢查是否存在外,並且會反白。Andy Chang
------
Andy Chang |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
>_<好像還是有點問題.ListBox還是沒東西進來,一定要我用手把滑鼠指標選擇了ComboBox裡面的Item才會有東西出來. 我想我們應該把重點放到這裡:
void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add("1"); ComboBox1->Items->Add("2"); ComboBox1->Items->Add("3"); ComboBox1->ItemIndex=1; //假設選了第2項 -->這裡是重點(以程式模擬選擇了第2項) }再來就是這裡: void __fastcall TForm1::ComboBox1Select(TObject *Sender) //ComboBox被選了要做些什麼事? { //現在是不曉得為何ComboBox1->ItemIndex都傳不進來.>_< switch (ComboBox1->ItemIndex) { case 0: ListBox1->Items->Add("1"); break; case 1: ListBox1->Items->Add("2"); ShowMessage(ComboBox1->ItemIndex); //沒辦法秀出1 break; case 2: ListBox1->Items->Add("3"); } }而Andy Chang的code似乎也是有點問題. 我加了一個ShowMessage在裡面,它完全不理我. void __fastcall TForm1::ComboBox1Select(TObject *Sender) { bool TF=false; ShowMessage("hi"); //不理我>_< for (int i=0;i< ListBox1->Items->Count;i ) { if (ListBox1->Items->Strings[i] == ComboBox1->Text) { ListBox1->ItemIndex=i; TF=true; } } if (! TF) { ListBox1->Items->Add(ComboBox1->Text); ListBox1->ItemIndex=ListBox1->Items->Count-1; } }總而言之,為何一定要用手把滑鼠指標選擇了ComboBox裡面的Item才會有東西出來? 知道的人幫助我解決這個問題吧. Thanks a lot! |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ComboBox1->Items->Add("1");
ComboBox1->Items->Add("2");
ComboBox1->Items->Add("3");
ComboBox1->ItemIndex=1; //假設選了第2項 -->這裡是重點(以程式模擬選擇了第2項)
ComboBox1Select(Sender);
} Andy Chang
------
Andy Chang |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |