具有多行單元格的表格框剛剛注意到 Table Box 的一些小問題(一長串問題中的又一個)。 我正在嘗試向 Table Box 添加相當長的字符串,因為 Table Box 並不真正支持多行,所以我嘗試將 Col Box 與 Table Box(<< Set Wrap()) 一起使用...問題在於,它似乎打破其他一切
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDD", << Set Wrap(150));
long_str = "speciallylongname";
Eval(EvalExpr(
tb << Add Row({1, Expr(long_str), Expr(textb), Expr(long_str)});
));

似乎 103width 被換行並且只顯示第二行。
有誰有什麼好主意我可以如何處理這個問題? 我很快想到了這三個:
- 我是否必須僅將列框與文本框一起使用,並接受我不能讓用戶像我希望的那樣輕鬆地在錶框中選擇行?
- 我是否必須為新的顯示框元素編寫自定義類(如放棄表格框)
- 創建包含全文的隱藏列,然後計算我可以在字符串列框中顯示的最大寬度,並僅顯示這些寬度。
大規模定制視窗回复:帶有多行單元格的表格框另外,因為 Table Box 似乎每行都有固定的高度,所以用 Scroll Box() 包裹 Text Box() 可能會有好處(如果出現滾動框,這將使列更寬)
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Scroll Box(Size(175, 35),
Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", << Set Wrap(150))
, <<SET auto="" stretching=""></SET>回复:帶有多行單元格的表格框我傾向於按列填充表格框,所以我嘗試了以下方法:
nceb << set({1});
scb1 << set({long_str});
scb2 << set({long_str});
wait(2);
cb << set(lstBoxes);
但同樣的問題發生了。我能讓它工作的唯一方法是同時擁有 scb1 和一個包含文本框的 Col Box。我通常採用使表格框的第一列包含單選按鈕以允許選擇的方法:

回复:帶有多行單元格的表格框@tx尼爾森第一種情況的差異可能是由不同的字體設置(或者甚至縮放級別?)引起的,因為根據我的理解,寬度是通過使用像素設置的。
第二種情況有點令人擔憂,因為看起來行以某種方式混淆了。 最有可能從錯誤的行獲取文本:

(更改了第二行的 long_str = "11231231312312312312";)。
將 Col Box 與文本框結合使用可能是目前“唯一”的解決方案。 太糟糕了,您無法僅通過設置 tb << Set Selectable Rows(1); 來單擊並突出顯示行;使用 col 框時。
回复:帶有多行單元格的表格框我運行了你的腳本並得到了不同的結果。

通過在表格中添加第二行,結果會更加混亂

使用帶有嵌入文本框的 Col Box() 似乎有幫助
