내 코드는 아래와 같습니다. 옵션 1과 2를 하나씩 클릭하면 잘 작동하지만 옵션 1을 계속 클릭하면 여러 목록 상자가 생성되어 사용자가 혼란스러워질 수 있습니다. 코드를 어떻게 최적화할 수 있나요? 많은 감사를 드립니다.
또 다른 두 가지 질문은 다음과 같습니다.
1. 패널 상자를 삭제하면 상자(텍스트 상자 등)도 함께 삭제되나요, 아니면 아예 표시되지 않나요?
2. 모달 창의 계층 구조를 어떻게 얻을 수 있습니까?
dt = Current Data Table();
If( Is Empty( dt ),
Stop(),
nc = N Col( dt )
);
openDTs = {};
For( i = 1, i <= N Table(), i++,
Insert Into( openDTs, Data Table( i ) << getname )
);
tableSelBox = Expr(
//Panel Box( "Select Limit Table",
lbtableSel = List Box( openDTs, width( 150 ), nlines( 6 ), maxselected( 1 ), ),
//),
);
nw = New Window( "Auto Plot",
modal,
hb = H List Box(
V List Box(
Panel Box( "Mode Selection",
Spacer Box( size( 100, 0 ) ),
rbMethod = Radio Box(
{"With Current Limit", "Without Current Limit"},
rbSel = rbMethod << get selected;
dbAfterpb = colSelLstBox << Next();
If( rbSel == "With Current Limit",
pb << Sib Append( tableSelBox ),
);
If( rbSel == "Without Current Limit",
dbAfterpb << Delete;
lbtableSel << Delete
),
),
),
Panel Box( "Action",
Spacer Box( size( 100, 0 ) ),
okBb = Button Box( "OK", Stop() ),
cancelBb = Button Box( "Cancel", Stop() ),
),
),
pb = Panel Box( "Select Columns",
colSelLstBox = Filter Col Selector( dt, nlines( Min( nc, 13 ) ) ),
),
pb << Sib Append( tableSelBox ),
),
);

사용자가 무엇을 할 수 있기를 바라나요?
1. 내부의 Panel Box() 객체도 삭제해야 합니다. (패널 상자에서 << Delete Box를 사용하고 그 내부의 이전 참조에서 얻은 결과를 시도해 보십시오. DisplayBox[ 대신 DisplayBox[]와 같습니다. FilterColSelector]를 예로 들 수 있습니다).
2. 어떤 계층구조인가요? 트리 구조나 속성을 보려면 일시적으로 모달을 제거하는 것이 가장 쉬운 옵션입니다.
어쩌면 이것은 단지 나일지도 모르지만 스크립트에 속한 테이블을 공유할 수 있다면 문제를 이해하는 것이 훨씬 쉬울 것입니다.
"현재 제한 있음" 옵션을 클릭하면 "열 선택" 패널 오른쪽에 새 목록 상자가 표시됩니다. "현재 제한 없음" 옵션을 클릭하면 목록 상자가 삭제되고 옵션 1을 클릭하면 - -> 옵션 2 --> 옵션 1 --> 옵션 2, 잘 작동합니다. 하지만 옵션 1을 여러 번 클릭하면 여러 목록 상자가 나타나 사용자를 혼란스럽게 만들 수 있습니다. 아래 이미지는 '옵션 1'을 4번 클릭하면 4개의 목록 상자가 생성되는 것을 보여줍니다.

혼란을 드려 죄송합니다. 내가 만난 문제는 특정 테이블과 관련된 것이 아니라 UI 개발 질문입니다.
라디오 상자를 사용하여 표시 상자를 생성하는 방법을 의미합니다. 예를 들어 옵션 1을 클릭하면 목록 상자 A가 생성되고 옵션 2는 목록 상자 B가 생성되고 옵션 3은 아무 작업도 수행되지 않습니다. 게다가 옵션 1을 클릭한 다음 옵션 2를 클릭하면 목록 상자 A가 삭제되고 새 목록 상자 B가 표시됩니다.
내 코드에서는 모든 것이 잘 작동합니다. 옵션 1 --> 옵션 2 --> 옵션 1 --> 옵션 2를 클릭하면.... 하지만 옵션 1을 여러 번 클릭하면 여러 목록 상자가 나타나 사용자를 혼란스럽게 만들 수 있습니다. 아래 이미지는 '옵션 1'을 4번 클릭하면 4개의 목록 상자가 생성되는 것을 보여줍니다.

With Current Limit이 lbtableSel이 비어 있는지 확인하는 옵션인 경우 추가 확인을 추가할 수 있습니다.
If(rbSel == "With Current Limit" & is empty(lbtableSel),
감사합니다. 귀하의 코드는 비모달 모드에서 잘 작동합니다.
모달 모드에서 옵션 1 --> 옵션 2 --> 옵션 1 을 클릭하면 목록 상자가 나오지 않지만, 옵션 2 --> 옵션 1 을 추가로 시도하면 목록 상자가 나타납니다! 조사한 결과 colSelLstBox 패널 뒤에 보이지 않는 목록 상자가 있는 것 같아서 호출하여 삭제할 수 없지만 옵션 2를 2번 실행하면 최종적으로 삭제되므로 옵션 1이 작동할 수 있습니다. 너무 흥미롭다....
모달 모드의 마지막 해결책은 크기(0,0) 스페이서 상자를 추가한 다음 그 처리기를 가져오고, 존재하는지 판단하고, 삭제하거나 생성하는 것입니다.