を の子コントロールとしてTComboBox
実際に設定していないため、 は表示されません。ポインタを に関連付けられたユーザー定義の値として保存しただけです。これは UI に影響を与えないため、削除します。TComboBox
TListView
TComboBox
TListItem
for (int i = 0; i < 10; i++)
{
TListItem *items = ListView1->Items->Add();
items->Caption = IntToStr(i);
items->SubItems->Add("combo"+IntToStr(i));
}
TComboBox
の内部を実際に表示するには、 をのとしてTListView
割り当て、表示する必要があるときはいつでもメソッドを使用して の位置とサイズを調整する必要があります。TListView
Parent
TComboBox
SetBounds()
TComboBox
ComboBox1->Parent = ListView1;
...
RECT rect = {0};
ListView_GetSubItemRect(ListView1->Handle, SomeListItem->Index, 1, LVIR_BOUNDS, &rect);
ComboBox1->SetBounds(rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top);
// update ComboBox1->Items as needed...
ComboBox1->Visible = true;
...
ComboBox1->Visible = false;
そうは言っても、あなたがやろうとしていることは、TValueListEditor
代わりにコンポーネントを使用して処理する方が適切です。必要に応じて項目を追加し、そのItemProps
プロパティを使用して各項目のTItemProp.EditStyle
プロパティをに設定し、必要に応じてイベントまたはプロパティをesPickList
使用して ComboBox 文字列を管理します。TValueListEditor.OnGetPickList
TItemProp.PickList