Foxtable(狐表)用户栏目专家坐堂 → [求助]最小化窗体_未声明名称


  共有1960人关注过本帖树形打印复制链接

主题:[求助]最小化窗体_未声明名称

帅哥哟,离线,有人找我吗?
洮沙
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]最小化窗体_未声明名称  发帖心情 Post By:2017/10/24 9:07:00 [只看该作者]

在做系统最小化托盘时,按照“有点甜”老师的以下代码试验时出现错误提示:

'AfterOpenProject事件

AddHandler nfi.DoubleClick, AddressOf Icon_DoubleClick '为通知区域图标添加双击事件
nfi.Text = "打卡提醒" '鼠标移上去显示的文本
nfi.Icon = New Icon(projectpath & "test.ico") '图标地址
nfi.Visible = True '设置为显示

Dim tsm1 As New System.Windows.Forms.ToolStripMenuItem("显示主窗体",GetImage("g:\test.ico"))  '定义一个菜单选项(带图标)
AddHandler tsm1.Click, AddressOf Menu_Click  '为这个菜单选项添加点击事件
cms.Items.Add(tsm1)
nfi.ContextMenuStrip = cms

Dim tsm2 As New System.Windows.Forms.ToolStripMenuItem("退出",GetImage("g:\test.ico"))  '定义一个菜单选项(带图标)
AddHandler tsm2.Click, AddressOf Menu_Click  '为这个菜单选项添加点击事件
cms.Items.Add(tsm2)
nfi.ContextMenuStrip = cms

BaseMainform.Text = "打卡提醒"
addhandler basemainform.resize, addressof BaseMainform_Resize

 

 

出现“未声明名称的错误提示”,麻烦老师看看,我哪里错了!谢谢!

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171024090212.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/24 12:10:00 [只看该作者]

 你全局代码那里的代码,也要拷贝

 

http://www.foxtable.com/webhelp/scr/1842.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
最小化窗口代码出现新问题  发帖心情 Post By:2017/11/29 12:00:00 [只看该作者]

甜老师,又出问题了。

按照说明做窗口最小化时成功,这几天没有注意看,今天发现以下状况:

 

1、能够正常实现窗口的最小化及双击打开等操作;

 

2、但是,如果打开的窗口有关联表时,最小化后重新双击打开,不显示关联子表内容,重新加载后还是不显示,只能关闭项目,重新启动。无解??

 

我的是SQL2008数据库。

 

如图:

 

项目刚打开时,显示正常: 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 


最小化后,重新打开,显示不正常:

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 

 

请老师看一下,如何解决?谢谢!

 

 

全局代码如下:

 

'定义通知区域小图标
Public Dim nfi As New System.Windows.Forms.NotifyIcon
Public wstate = 2

'图标双击事件'
Public Sub ICON_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
    If BaseMainForm.Opacity = 0 Then
        basemainform.WindowState = wstate
        BaseMainForm.Opacity = 1
    Else
        wstate = basemainform.WindowState
        basemainform.WindowState = 1
        BaseMainForm.Opacity = 0
    End If
End Sub

'定义右键菜单
Public Dim cms As New System.Windows.Forms.ContextMenuStrip

'菜单按钮点击事件
Public Sub Menu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Select Case sender.Text
        Case "显示主窗体"
        basemainform.WindowState = wstate
        BaseMainForm.Opacity = 1
        Case "退出"
            Syscmd.Project.Exit(False)
    End Select
End Sub

Public Sub BaseMainform_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs)
    If sender.WindowState = 1 Then
        BaseMainForm.Opacity = 0
        basemainform.ShowInTaskBar = False
    Else
        BaseMainForm.Opacity = 1
        basemainform.ShowInTaskBar = True
    End If
End Sub

 

 

项目AfterOpenProject 代码如下:

 


 

'AfterOpenProject事件

AddHandler nfi.DoubleClick, AddressOf Icon_DoubleClick '为通知区域图标添加双击事件
nfi.Text = "财务咨询管理系统(" & User.Name & ")"'鼠标移上去显示的文本
nfi.Icon = New Icon(projectpath & "test.ico") '图标地址
nfi.Visible = True '设置为显示

Dim tsm1 As New System.Windows.Forms.ToolStripMenuItem("显示主窗体",GetImage("zhu.ico"))  '定义一个菜单选项(带图标)
AddHandler tsm1.Click, AddressOf Menu_Click  '为这个菜单选项添加点击事件
cms.Items.Add(tsm1)
nfi.ContextMenuStrip = cms

Dim tsm2 As New System.Windows.Forms.ToolStripMenuItem("退出",GetImage("tuichu.ico"))  '定义一个菜单选项(带图标)
AddHandler tsm2.Click, AddressOf Menu_Click  '为这个菜单选项添加点击事件
cms.Items.Add(tsm2)
nfi.ContextMenuStrip = cms

BaseMainform.Text = "财务咨询管理系统"
addhandler basemainform.resize, addressof BaseMainform_Resize

[此贴子已经被作者于2017/11/29 12:12:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/29 12:15:00 [只看该作者]

实例发上来测试。

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
回复:(有点甜)实例发上来测试。  发帖心情 Post By:2017/11/29 12:35:00 [只看该作者]

去掉最小化事件,一切显示正常。上传实例的话,数据怎么办呢?

 

[此贴子已经被作者于2017/11/29 12:35:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/29 14:45:00 [只看该作者]

测试没问题

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:downloads.zip


 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
回复:(有点甜)测试没问题  [upload=...  发帖心情 Post By:2017/11/30 8:53:00 [只看该作者]

谢谢,甜老师。

 

我也做了这样的实例实验,没有问题!但是,我实际的项目是SQL2008数据库,并且关联父表是分页加载的,估计问题就出在是否是内外表,或者是否是分页加载的区别上了吧?!

 

不过我有一个变通的方法,就是如何在项目最小化前先判断目前打开的窗口表是否有关联表,如果有打开主页(背景窗口),这样就避免以上的尴尬!

 

还请老师指点,看是否能实现?烦请贴一下代码,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/30 8:57:00 [只看该作者]

 请单独做个例子发上来测试。不存在你说的问题。

 

 你项目肯定有代码影响了。


 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
变通了一下,将就用!  发帖心情 Post By:2017/11/30 10:44:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

自己做了一个(最小化)菜单按钮,代码如下:

 

Select Case CurrentTable.Name
    Case "客户","主合同"
        MainTable = Tables("员工")
        Forms("背景窗口").Open()
        basemainform.WindowState = 1
    Case Else
        basemainform.WindowState = 1
End Select

 

全局代码也做了修改:

 

'定义通知区域小图标
Public Dim nfi As New System.Windows.Forms.NotifyIcon
Public wstate = 2

'图标双击事件'
Public Sub ICON_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If BaseMainForm.Opacity = 0 Then
    basemainform.WindowState = wstate
    BaseMainForm.Opacity = 1
    basemainform.TopMost = True
    basemainform.TopMost = False
Else
    Select Case CurrentTable.Name
        Case "客户","主合同"
            MainTable = Tables("员工")
            Forms("背景窗口").Open()
            wstate = basemainform.WindowState
            basemainform.WindowState = 1
            BaseMainForm.Opacity = 0
        Case Else
            wstate = basemainform.WindowState
            basemainform.WindowState = 1
            BaseMainForm.Opacity = 0
    End Select
End If
End Sub

'定义右键菜单
Public Dim cms As New System.Windows.Forms.ContextMenuStrip

'菜单按钮点击事件
Public Sub Menu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Select Case sender.Text
    Case "显示主窗体"
        basemainform.WindowState = wstate
        BaseMainForm.Opacity = 1
        basemainform.TopMost = True
        basemainform.TopMost = False
    Case "退出"
        Syscmd.Project.Exit(False)
End Select
End Sub

Public Sub BaseMainform_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs)
If sender.WindowState = 1 Then
    BaseMainForm.Opacity = 0
    basemainform.ShowInTaskBar = False
Else
    BaseMainForm.Opacity = 1
    basemainform.ShowInTaskBar = True
End If
End Sub

 

如果能将系统默认的“最小化”横线按钮隐藏就OK了,老师如何做?!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/30 11:03:00 [只看该作者]

无法隐藏的,只能设置不可用

 

basemainform.MinimizeBox = False

 

或者你整体隐藏,如 basemainform.controlbox = False


 回到顶部
总数 11 1 2 下一页