2009-12-03 84 views
0

我试图手动将图像图标填充到嵌套在网格中的窗口中。Axapta:表单生命周期问题

在运行事件中,字段看起来没有数值。字符串控件总是返回一个空值。这个代码有更好的地方吗?在.NET中,我会使用一个数据绑定事件。 AX中是否有等价物?

void run() 
{ 
    FormStringControl s = element.control(control::ABC_Icons_FileName); 
    FormWindowControl w = element.control(control::ABC_Window); 
    ; 
    w.imageName(s.valueStr()); 
    super(); 
} 

感谢

回答

1

如果我正确理解你的任务要在每个网格线显示图像?然后:

  1. 创建form.init的ImageList():

    imageList = new ImageList(ImageList::smallIconWidth(), ImageList::smallIconHeight(); 
    Image image = new Image(); 
    ; 
    image.loadImage(filename) 
    imageList.add(image); 
    // ... 
    image.loadImage(filename-n) 
    imageList.add(image); 
    

    的ImageList必须ClassDEclaration段里声明。

  2. 将网格中的Window域的AutoDaclaration属性设置为“Yes”。

  3. 在形式的方法的init()的窗口字段中设置的ImageList:

    MyWindow.imageList(imageList); 
    
  4. 在其上所使用的窗体上创建的显示方法的表。事情是这样的:

    display int status() 
    { 
        if(this.amount > 10) 
         return 5; // 5th image from image list 
        else 
         return 6; 
    } 
    
  5. 设置属性DataSource和DataMethod为您的窗口控制:

    数据源= DataMethod =状态

如果您需要更多示例,请查看表单ReqTransPo。