以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]最小化窗体_未声明名称  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=108496)

--  作者:洮沙
--  发布时间: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
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/10/24 12:10:00
--  

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

 

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

 


--  作者:洮沙
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2017/11/29 12:15:00
--  
实例发上来测试。
--  作者:洮沙
--  发布时间:2017/11/29 12:35:00
--  回复:(有点甜)实例发上来测试。

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

 

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

--  作者:有点甜
--  发布时间:2017/11/29 14:45:00
--  

测试没问题

 

 

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


--  作者:洮沙
--  发布时间:2017/11/30 8:53:00
--  回复:(有点甜)测试没问题  [upload=...

谢谢,甜老师。

 

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

 

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

 

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


--  作者:有点甜
--  发布时间:2017/11/30 8:57:00
--  

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

 

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


--  作者:洮沙
--  发布时间: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了,老师如何做?!


--  作者:有点甜
--  发布时间:2017/11/30 11:03:00
--  

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

 

basemainform.MinimizeBox = False

 

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