0

如何更改按钮控件的可见性MyButton

我有一个表单MyForm,我想在其中设置MyButton按钮控件的可见性属性。我在表单的init方法中使用了这段代码:

public void init()
{
    MyTable myTable;
    ;

    while select myTable where myTable.UserId == curUserId()
    {
        if (myTable.FlagField == NoYes::Yes )
        {
            myButton.visible(true);
        }
        if (!myTable.FlagField == NoYes::No )
        {
            myButton.visible(false);
        }
    }

    super();
}

AutoDeclaration的属性MyButton设置为Yes。但是当我打开表单时,我收到以下错误:

“初始化 FormButtonControl 对象失败。”

我想我必须使用 FormButtonControl 类,但我不知道该怎么做。

4

2 回答 2

2

窗体的控件由super()窗体方法中的调用初始化init。要更改表单控件的属性,必须首先对其进行初始化,因此您必须在super()调用之后放置更改属性的代码。

于 2015-04-30T16:32:59.693 回答
2

从代码的角度来看,FH-Inway 的答案是正确的,但我想评论一下,您所做的事情是不正确的,除非您mineTable只有 1 条匹配记录,否则将无法正常运行。

目前,当表单被实例化时,您基本上循环并为每条记录一遍又一遍地mineTable切换myButton可见和隐藏where mineTable.UserId == curUserId(),然后显示表单以及最后一条记录是什么。

while select [table] where [clause] {[code]}这就是和之间的区别select [table] where [clause];

如果该表中只有一条记录,则应将其更改为:

MineTable mineTable;

super();

select firstonly mineTable where mineTable.UserId == curUserId();
if (mineTable)
{
    if (mineTable.FlagField== NoYes::Yes )
    {
        myButton.visible(true);
    }
    if(!mineTable.FlagField== NoYes::No )
    {
        myButton.visible(false);
    }
}
else
{
    throw error("Record not found or whatever your error should be");
}
于 2015-04-30T17:34:23.703 回答