CheckListBox to ListBox------? |
答題得分者是:gemi0305
|
nieo
一般會員 發表:32 回覆:56 積分:17 註冊:2003-07-25 發送簡訊給我 |
請問各位大大:
我在FORM放了兩個按鍵,分別是向右加入鍵,向左刪除鍵,還有一個CheckListBox跟一個ListBox。我的構想如下:
從CheckListBox點選多個選項以後,然後按加入鍵,將所選選項加入到ListBox裡,如果要從ListBox裡刪除,也選選取自己不要的選項以後,在按向左刪除鍵刪除。可是當我按加入鍵以後,卻只能一項一項的加,而從ListBox裡刪除的時候,也不能多個選取後,一次刪除,請問這是什麼問題呢? 我的向右加入件程式碼:
int i;
for(i=0;i<=CheckListBox1->Count-1;i++)
{
if(CheckListBox1->State[i]==true)
{
ListBox1->Items->Add(CheckListBox1->Items->Strings[i]);
CheckListBox1->Items->Delete(i);
}
}
向左刪除鍵:
for(i=0;i
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
當你刪除一個item之後,要從新開始檢查,
還有listbox要設成MultiSelect < class="code">
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ListBox1->MultiSelect=true;
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
bool finish = false;
while (!finish)
{
if (CheckListBox1->Count == 0)
finish = true; for (int i=0;i
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位大大: 我在FORM放了兩個按鍵,分別是向右加入鍵,向左刪除鍵,還有一個CheckListBox跟一個ListBox。我的構想如下: 從CheckListBox點選多個選項以後,然後按加入鍵,將所選選項加入到ListBox裡,如果要從ListBox裡刪除,也選選取自己不要的選項以後,在按向左刪除鍵刪除。可是當我按加入鍵以後,卻只能一項一項的加,而從ListBox裡刪除的時候,也不能多個選取後,一次刪除,請問這是什麼問題呢? 我的向右加入件程式碼: int i; for(i=0;i<=CheckListBox1->Count-1;i ) { if(CheckListBox1->State[i]==true) { ListBox1->Items->Add(CheckListBox1->Items->Strings[i]); CheckListBox1->Items->Delete(i); } } 向左刪除鍵: for(i=0;i nieo 你好: (1)先把 ListBox1 的 MultiSelect 屬性設為 true (2)加入以下的程式碼再試試看 向右鍵: int i; for(i=0; i-- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/09/02 12:07:00
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
注意 count 問題
向右鍵: int i; for(i=(CheckListBox1->Count-1); i>=0; i--) { if(CheckListBox1->Checked[i]) { ListBox1->Items->Add(CheckListBox1->Items->Strings[i]); CheckListBox1->Items->Delete(i); } } ListBox1->Sorted=true; 向左鍵: int i=0; for(i=(ListBox1->Count-1); i>=0; i--) { if(ListBox1->Selected[i]) { CheckListBox1->Items->Add(ListBox1->Items->Strings[i]); ListBox1->Items->Delete(i); } } CheckListBox1->Sorted=true;
------
︿︿ |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
剛剛在吃飯的時候,突然想到一個更簡單的方法,參考看看
各別為右鍵和左鍵:
< class="code">
void __fastcall TForm1::Button3Click(TObject *Sender)
{
for (int i=0;i
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 注意 count 問題cmf 你好: 是的,的確會有問題,謝謝你的告知,改成 while 迴圈應該就可以了向右鍵: int i; for(i=(CheckListBox1->Count-1); i>=0; i--) { if(CheckListBox1->Checked[i]) { ListBox1->Items->Add(CheckListBox1->Items->Strings[i]); CheckListBox1->Items->Delete(i); } } ListBox1->Sorted=true; 向左鍵: int i=0; for(i=(ListBox1->Count-1); i>=0; i--) { if(ListBox1->Selected[i]) { CheckListBox1->Items->Add(ListBox1->Items->Strings[i]); ListBox1->Items->Delete(i); } } CheckListBox1->Sorted=true; 向右鍵(新增): void __fastcall TForm1::Button2Click(TObject *Sender) { int i=0; while(i-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
nieo
一般會員 發表:32 回覆:56 積分:17 註冊:2003-07-25 發送簡訊給我 |
|
macrojackson
一般會員 發表:1 回覆:2 積分:0 註冊:2004-08-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |