沙漠黑白键 2022-05-10 16:29
浏览 7
已结题

PureBasic编多个窗体的程序时,event怎么处理?

Repeat

event = WaitWindowEvent()
;;;;;;;;;;;;;;;;;;;;
If event = 512
  Continue  
EndIf

;;;;;;;;;;;;;;;;;;;;;
Debug "event = "+Str(event)
window = EventWindow()
Debug "window = "+Str(window)

If window
  Select event
    Case #PB_Event_CloseWindow
      If (window = Window_Login) Or (window = Window_Main)
        Break
      EndIf
      If IsWindow(window)
        DisableWindow(Window_Main,#False)
        CloseWindow(window)
      EndIf
    Case #PB_Event_Menu
      Select EventMenu()
        Case #MenuItem_101
          onMenuModifyPasswordClick(EventMenu())
        Case #MenuItem_102
          onMenuAddUserClick(EventMenu())
        Case #MenuItem_103
          onMenuDeletePasswordClick(EventMenu())
        Case #MenuItem_104
          onMenuExitClick(EventMenu())
        Case #MenuItem_201
          onMenuAddFeederClick(EventMenu())
        Case #MenuItem_202
          onMenuModifyFeederClick(EventMenu())
        Case #MenuItem_203
          onMenuDeleteFeederClick(EventMenu())
        Case #MenuItem_204
          onMenuQueryFeederClick(EventMenu())
        Case #MenuItem_301
          onMenuAddCustomerClick(EventMenu())
        Case #MenuItem_302
          onMenuModifyCustomerClick(EventMenu())
        Case #MenuItem_303
          onMenuDeleteCustomerClick(EventMenu())
        Case #MenuItem_304
          onMenuQueryCustomerClick(EventMenu())
        Case #MenuItem_401
          onMenuAddProductClick(EventMenu())
        Case #MenuItem_402
          onMenuModifyProductClick(EventMenu())
        Case #MenuItem_403
          onMenuDeleteProductClick(EventMenu())
        Case #MenuItem_404
          onMenuQueryProductClick(EventMenu())
        Case #MenuItem_501
          onMenuAddStockClick(EventMenu())
        Case #MenuItem_502
          onMenuModifyStockClick(EventMenu())
        Case #MenuItem_503
          onMenuDeleteStockClick(EventMenu())
        Case #MenuItem_504
          onMenuQueryStockClick(EventMenu())
        Case #MenuItem_601
          onMenuAddSellClick(EventMenu())
        Case #MenuItem_602
          onMenuModifySellClick(EventMenu())
        Case #MenuItem_603
          onMenuDeleteSellClick(EventMenu())
        Case #MenuItem_604
          onMenuQuerySellClick(EventMenu())
        Case #MenuItem_701
          onMenuAboutClick(EventMenu())
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadget()
          ;登录  
        Case Button_LoginWindow_Login
          onLoginWindowLoginButtonClick(EventType())  
        Case Button_LoginWindow_Cancel
          onLoginWindowCancelButtonClick(EventType())
          
          
          ;修改密码  
        Case Button_ModifyPasswordWindows_Modify
          onModifyPasswordWindowModifyButtonClick(EventType())   
        Case Button_ModifyPasswordWindows_Cancel
          onModifyPasswordWindowCancelButtonClick(EventType()) 
          ;添加用户  
        Case Button_AddUserWindow_Ok
          onAddUserWindowAddClick(EventType())  
        Case Button_AddUserWindow_Cancel
          onAddUserWindowCancelClick(EventType())  
          ;删除用户  
        Case Button_DeleteUserWindow_Delete
          onDeleteUserWindowDeleteClick(EventType())  
        Case Button_DeleteUserWindow_Cancel
          onDeleteUserWindowCancelClick(EventType())  
          
          ;添加供货商  
        Case Button_AddFeederWindow_Add
          onAddFeederWindowAddClick(EventType())
        Case Button_AddFeederWindow_Cancel
          onAddFeederWindowCancelClick(EventType()) 
          ;修改供货商
        Case Button_ModifyFeederWindow_Modify
          onModifyFeederWindowModifyClick(EventType())   
        Case Button_ModifyFeederWindow_Cancel
          onModifyFeederWindowCancelClick(EventType()) 
        Case ListIcon_ModifyFeederWindow
          onModifyFeederWindowListIcon(EventType())
          ;删除供应商
        Case Button_DeleteFeederWindow_Delete
          onDeleteFeederWindowDeleteClick(EventType()) 
        Case Button_DeleteFeederWindow_Cancel
          onDeleteFeederWindowCancelClick(EventType())
        Case ListIcon_DeleteFeederWindow
          onDeleteFeederWindowListIcon(EventType())
          ;查询供货商
        Case Button_QueryFeederWindow_Cancel  
          onQueryFeederWindowCancelClick(EventType())  
        Case Button_QueryFeederWindow_Query
          onQueryFeederWindowQueryClick(EventType())
          
          
          ;添加顾客
        Case Button_AddCustomerWindow_Add
          onAddCustomerWindowAddClick(EventType())  
        Case Button_AddCustomerWindow_Cancel
          onAddCustomerWindowCancelClick(EventType())
          ;修改顾客
        Case Button_ModifyCustomerWindow_Modify
          onModifyCustomerWindowModifyClick(EventType())
        Case Button_ModifyCustomerWindow_Cancel
          onModifyCustomerWindowCancelClick(EventType())
        Case ListIcon_ModifyCustomerWindow
          onModifyCustomerWindowListIcon(EventType())
          ;删除顾客
        Case Button_DeleteCustomerWindow_Delete
          onDeleteCustomerWindowDeleteClick(EventType()) 
        Case Button_DeleteCustomerWindow_Cancel
          onDeleteCustomerWindowCancelClick(EventType())
        Case ListIcon_DeleteCustomerWindow
          onDeleteCustomerWindowListIcon(EventType())
          ;查询顾客
        Case Button_QueryCustomerWindow_Cancel  
          onQueryCustomerWindowCancelClick(EventType()) 
        Case Button_QueryCustomerWindow_Query
          onQueryCustomerWindowQueryClick(EventType())
          
          
          ;添加商品 
        Case Button_AddProductWindow_Add
          onAddProductWindowAddClick(EventType())    
        Case Button_AddProductWindow_Cancel
          onAddProductWindowCancelClick(EventType()) 
          ;修改商品
        Case Button_ModifyProductWindow_Modify
          onModifyProductWindowModifyClick(EventType()) 
        Case Button_ModifyProductWindow_Cancel
          onModifyProductWindowCancelClick(EventType())
        Case ListIcon_ModifyProductWindow
          onModifyProductWindowListIcon(EventType())
          ;删除商品
        Case Button_DeleteProductWindow_Delete
          onDeleteProductWindowDeleteClick(EventType()) 
        Case Button_DeleteProductWindow_Cancel
          onDeleteProductWindowCancelClick(EventType()) 
        Case ListIcon_DeleteProductWindow
          onDeleteProductWindowListIcon(EventType()) 
          ;查询顾客
        Case Button_QueryProductWindow_Cancel
          onQueryProductWindowCancelClick(EventType())
        Case Button_QueryProductWindow_Query
          onQueryProductWindowQueryClick(EventType())
          
          
          ;添加进货
        Case Button_AddStockWindow_Add
          onAddStockWindowAddClick(EventType())
        Case Button_AddStockWindow_Cancel
          onAddStockWindowCancelClick(EventType()) 
          ;修改进货
        Case Button_ModifyStockWindow_Modify
          onModifyStockWindowModifyClick(EventType())  
        Case Button_ModifyStockWindow_Cancel
          onModifyStockWindowCancelClick(EventType())  
        Case ListIcon_ModifyStockWindow  
          onModifyStockWindowListIcon(EventType())
          ;删除进货
        Case Button_DeleteStockWindow_Delete
          onDeleteStockWindowDeleteClick(EventType()) 
        Case Button_DeleteStockWindow_Cancel
          onDeleteStockWindowCancelClick(EventType()) 
        Case ListIcon_DeleteStockWindow
          onDeleteStockWindowListIcon(EventType()) 
          ;查询进货
        Case Button_QueryStockWindow_Cancel
          onQueryStockWindowCancelClick(EventType())  
        Case Button_QueryStockWindow_Query
          onQueryStockWindowQueryClick(EventType())              
          
          ;添加销售
        Case Button_AddSellWindow_Add
          onAddSellWindowAddClick(EventType()) 
        Case Button_AddSellWindow_Cancel
          onAddSellWindowCancelClick(EventType()) 
          ;修改销售
        Case Button_ModifySellWindow_Modify
          onModifySellWindowModifyClick(EventType())  
        Case Button_ModifySellWindow_Cancel
          onModifySellWindowCancelClick(EventType())  
        Case ListIcon_ModifySellWindow  
          onModifySellWindowListIcon(EventType())
          ;删除销售
        Case Button_DeleteSellWindow_Delete
          onDeleteSellWindowDeleteClick(EventType())  
        Case Button_DeleteSellWindow_Cancel
          onDeleteSellWindowCancelClick(EventType()) 
        Case ListIcon_DeleteSellWindow
          onDeleteSellWindowListIcon(EventType())   
          ;查询销售
        Case Button_QuerySellWindow_Cancel 
          onQuerySellWindowCancelClick(EventType())  
        Case Button_QuerySellWindow_Query
          onQuerySellWindowQueryClick(EventType())
          
          
          ;关于
        Case Button_AboutWindow
          onAboutWindowOkButton(EventType()) 
      EndSelect
  EndSelect
EndIf

ForEver
我在窗体打开关闭,不同的窗体几次后,会出问题。会调用不是本次操作的窗体上的一个方法。很是奇怪。有哪位会吗?

  • 写回答

1条回答 默认 最新

  • 沙漠黑白键 2022-05-12 06:58
    关注

    我知道怎么回事了,对多个窗体控件句柄#ANY_ALL自动设置值会有冲突,所以得自己写枚举,这样就不会有冲突了。purebasic还得改善的余地啊。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 5月10日

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂