具有多行单元格的表格框刚刚注意到 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() 似乎有帮助
