我用ncurses和特殊形式用C编写了一个程序。我需要在填写表单时移动表单中的某个特定字段。我尝试了move_field,但它不起作用。以下是我的写作方式:
if (typact==ADSD && rowc>rowg )
{
move_field(field[ietg],rowg=rowc,colg);
refresh();
}
我确信move_field
已执行(我使用xCode调试程序(。我认为刷新是不够的。我还尝试将move_field
放置在unpost_form
和post_form
之间,如下所示:
if (typact==ADSD && rowc>rowg /* && !field_status(field[ietg]) */ )
{ unpost_form(my_form);
move_field(field[ietg],rowg=rowc,colg);
post_form(my_form); refresh();
}
但它又不起作用了。表格被删除并重新张贴,没有我写的文本,字段总是在同一个地方。
如何使用move_field
?
手册页面显示
函数
move_field
将给定字段(必须断开连接的(移动到屏幕上的指定位置。
您可以通过使用form_fields
检索字段的当前列表(以及使用field_count
其长度(、从该列表中删除字段并使用1set_form_fields
更新列表来断开字段的连接。
使用move_field
时,还必须(暂时(使用unpost_form
取消粘贴表单。否则,move_field
将返回E_POSTED
(表单已过帐(。移动字段后,使用post_form
让表单驱动程序使用更新的表单。
ncurses源中的test/move_field.c
文件提供了这些调用的示例。