|
<현> 님이 쓰신 글 :
: ListBox에서 선택된 항목을
: Panel이나 Edit로 가져올려구 합니다.
: TreeView에서는 잘되던것이 잘안되네요..^^
:
: void __fastcall TForm1::ListBox1Click(TObject *Sender)
: {
: int i;
: for(i=0;i<ListBox1->Items->Count;i++)
: {
: if(ListBox1->Selected[i])
: Edit1->Text=ListBox1->Items->Text;
: }
: }
:
: 이렇게 코드 작성을 했는데 왜 안되는건지 잘모르겠습니다.
: (if문에서 ListBox1->Selected[i]->Text라고 써넣고 싶었지만..
: 에러라구 하네요..ㅜ.ㅜ)
: 시작한지가 얼마안되서..^^
: 알려주세요~~~
: 꾸벅
ListBox의 Selected[i] 속성은 MultiSelected 속성이 true일 때
(다중 선택 가능할 때)만 사용하는 것입니다.
MultiSelected은 default로 false 이므로 위의 코드는 당연히
동작하지 않을 것입니다.
만약 MultiSelected 속성이 true라고 가정하고
다중 선택한 문자열을 Memo에 표시한다고 가정하면
다음과 같이 하면 됩니다.
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
Memo1->Clear();
for (int i = 0; i < ListBox1->Items->Count; i++)
if (ListBox1->Selected[i])
Memo1->Lines->Add(ListBox1->Items->Strings[i]);
}
만일 님의 의도가 단일 선택(MultiSelected == false)라면
코드는 엄청 간단합니다.
Edit1->Text = ListBox1->Items->Strings[ListBox1->ItemIndex]
이게 끝입니다.
MultiSelected == false 일때
ItemIndex는 선택한 문자열의 인덱스 값을 나타냅니다.
그럼 즐프...
|