InputField与行(但不是列,网格或面板)的相互作用


3

在Mathematica 9中,InputField和之间存在交互。下面的片段(无或无Module和选项):

Module[{opts}, 
    opts = { FieldSize -> 10, FieldHintStyle -> {Black}, 
     Appearance -> Framed}; 
    Row[ 
     {InputField["", String, FieldHint -> "Field 1", opts], 
     InputField["", String, FieldHint -> "Field 2", opts], 
     InputField["", String, FieldHint -> "Field 3", opts]}] 
    ] 

将输入字段的正确输出的行和正确处理在由用户选择(不一定是“场1”)的第一个字段输入的文本,但在下一个字段中标记并输入文本将转换为输入表单。

然而,移除,如:

{InputField["", String, FieldHint -> "Field 1"], 
InputField["", String, FieldHint -> "Field 2"], 
InputField["", String, FieldHint -> "Field 3"]} 

结果正确操作(包括跨字段跳格)。通过上面的列表面板,ColumnGrid(使两组列表)也工作正常。

已知的问题?

  0

还是一样的(错误?)问题以V 11.0.1 06 2月. 172017-02-06 14:55:54

3

我相信你需要Deploy来保持行元素不被选择。
在这里,在第7版兼容格式:

Module[{opts}, 
opts = {FieldSize -> 10, Appearance -> Framed}; 
Row[{ 
    InputField["", String, opts], 
    InputField["", String, opts], 
    InputField["", String, opts] 
}] // Deploy 
] 
  0

这样的作品,但如何丑陋,它是必要的行和列没有或表格?什么原因? 23 8月. 132013-08-23 20:37:50

  0

@alan那么,Tab似乎不会在Column或Grid的字段之间移动,所以您没有看到这个特定的问题,但严格来说,我认为'Deploy'应该与所有三个一起使用,否则您可以选择并覆盖这些字段。 23 8月. 132013-08-23 20:43:03

  0

即使使用“列”和“网格”进行排列,我也可以在字段之间进行制表。 23 8月. 132013-08-23 20:45:13

  0

@alancalvitti我怀疑'Grid'会工作,而'Column'会显示与'Row'相同的行为,但现在很奇怪...... 23 8月. 132013-08-23 21:17:21

  0

@Kuba'Grid'和'Column'都是'GridBox'因此应该表现得很好相同。 'Row'是'RowBox'。虽然标签应该尽管工作。由于它在早期版本中起作用,它对我来说看起来像一个bug。 23 8月. 132013-08-23 22:37:59

+1

'Row'选项'Selectable - > False'似乎也适用。 24 8月. 132013-08-24 03:40:09

  0

@ MichaelE2是的,这也适用。有什么理由比'Deploy'更喜欢它? 24 8月. 132013-08-24 06:08:08

  0

我没有理由选择其中一种,除了'Deploy'少输入。奇怪的是,'Column' /'Grid'的'Selectable - > True'不会像默认的'Row'那样操作。我怀疑@MikeHoneychurch是对的,还是有更深的理由来说明'Row'的行为是不同的。 24 8月. 132013-08-24 11:22:04