精华内容
下载资源
问答
  • VB如何检测一个窗体是否打开的状态呢? 如果窗体是否处于显示状态,通过Visible属性辨别 如何判别窗体已载入,但未必显示。 可以在forms集合中搜索一下是否存在指定窗体。
  • 在CAD.NET中开发的窗体,命令调用了这个过程,为了避免被重复打开。本来很简单的一个事情,原始代码如下: private frmDZDY as PMTx If frmDZDY Is Nothing Or frmDZDY.IsDisposed Then frmDZDY = New PMTx '执行一...

    在CAD.NET中开发的窗体,命令调用了这个过程,为了避免被重复打开。本来很简单的一个事情,原始代码如下:

    private frmDZDY as PMTx
    If frmDZDY Is Nothing Or frmDZDY.IsDisposed Then
                frmDZDY = New PMTx '执行一次,实例化一次
                Application.ShowModelessDialog(frmDZDY)
    Else '这个窗体实例化了且没有被销毁(关闭),但是被最小化至任务栏了
                frmDZDY.WindowState = Windows.Forms.FormWindowState.Normal
    End If
    

    代码逻辑没什么问题,但是运行后CAD直接崩溃,用try并且设置断点查看了一下,原来是出在frmDZDY.IsDisposed,因为第一次没有实例化,即为Nothing(就是C#中的NULL),但IsDisposed属性是不允许空引用的,会抛出Exception,显示system.Nullreference Exception。
    这样就好办了,没有实例化前会报错,那就不让它获取IsDisposed属性嘛,把Or 改 OrElse,OrElse是按照最短路径判断。OK!!!

    private frmDZDY as PMTx
    If frmDZDY Is Nothing OrElse frmDZDY.IsDisposed Then
                frmDZDY = New PMTx '执行一次,实例化一次
                Application.ShowModelessDialog(frmDZDY)
    Else '这个窗体实例化了且没有被销毁(关闭),但是被最小化至任务栏了
                frmDZDY.WindowState = Windows.Forms.FormWindowState.Normal
    End If
    

    完美运行。。
    当然还有其他方式不让重复运行,比如实际并不关闭窗体,采用触发窗体关闭的事件,事件过程:frm.hide、取消dispose。同样的最终效果。
    查了一下采用单例模式(公有变量,私有构造函数)的方式,又比如设置一个Boolean型变量,记录是否实例化过一次了。试了一下,这两都不实用,在不同的类模块中可能还有点用吧。

    展开全文
  • VB判断指定的Excel文件是否打开

    千次阅读 2016-06-16 15:39:15
    程序要求:判断一个Excel文件是否打开。实现方法:窗体布局如下:代码如下:'先引用 Microsoft Excel 11.0 Object Library(Excel2003) 后再声明:Dim xlApp As New Excel.ApplicationDim xlBook As New Excel....

    程序要求:

    判断一个Excel文件是否打开。

    实现方法:

    窗体布局如下:

    VB判断指定的Excel文件是否打开 - 似水无痕 - 用友软件

    代码如下:

    '先引用 Microsoft Excel 11.0 Object Library(Excel2003) 后再声明:
    Dim xlApp As New Excel.Application
    Dim xlBook As New Excel.Workbook
    Dim xlSheet As New Excel.Worksheet

    Private Sub Command1_Click() '打开Excel文件
        Set xlBook = xlApp.Workbooks.Open("" & App.Path & "\test.xls")
        xlBook.RunAutoMacros (xlAutoOpen)
        xlApp.Visible = True
    End Sub

    Private Sub Command2_Click() '关闭Excel文件
        On Error Resume Next
        xlBook.RunAutoMacros (xlAutoClose)
        xlBook.Close (True)
        xlApp.Quit
        Set xlApp = Nothing
    End Sub

    Private Sub Command3_Click() '判断Excel文件是打开还是关闭状态
       '以下代码结合xls中的宏实现判断
        If Dir("" & App.Path & "\excel.bz") = "" Then
            MsgBox "关闭状态"
        Else
            MsgBox "打开状态"
        End If
    End Sub

    =================================================================================

    代码中用到的test.xls文件中的VBA部分:(进入VBE,新建一个模块,然后放置以下代码)

    Sub auto_open()
      Open "" & Application.ActiveWorkbook.Path & "\excel.bz" For Output As #1  '创建并写标志文件
      Close #1
    End Sub


    Sub auto_close()
      Kill "" & Application.ActiveWorkbook.Path & "\excel.bz"      '删除标志文件
    End Sub

     

    附:VB源码下载:http://ishare.iask.sina.com.cn/f/15697221.html
     

    展开全文
  • VB.net开发的应用程序是支持命令行参数的,可以用My.Application.CommandLineArgs()语句来判断软件启动时是否附带相应的命令行参数。 在windows操作系统环境下,当鼠标双击文件时,如果该文件有关联的软件时,则会...

    VB.net开发的应用程序是支持命令行参数的,可以用My.Application.CommandLineArgs()语句来判断软件启动时是否附带相应的命令行参数。

    在windows操作系统环境下,当鼠标双击文件时,如果该文件有关联的软件时,则会在启动软件时附加相应的信息,这个信息一般就在CommandLineArgs()的第1个参数中,因此可以在软件的Load窗体事件中进行判断,如果第1个命令行参数不为空,则说明是双击文件启动软件;如果为空,则说明是直接启动软件。

    代码如下:

    Dim FileName AsString =""              '接收的文件名

    if My.Application.CommandLineArgs().Count<>0 then

      filename=my.application.commandlineargs(0)

      load(filename)    ‘打开文件的函数

    end if

    展开全文
  • VB net 模拟考试系统,本考试时间为30分钟,系统...本考试系统的窗口只允许打开一个,程序会判断窗体是否已经打开,如果已经打开,则不需要重复打开,只是显示。  程序正常运行需要SQL数据库,请在测试前附加并连接好。
  • vb2008记事本日语版

    2012-01-30 12:41:55
    判断文件是否改动,背景音乐,透明窗体 拖拽打开文本,正反向大不小写搜索richtextbox,`选择右键在网上搜索关键字。不过是日语在日语系统下编写,想运行这个记事本,需把系统编码改为日语的,不然日语会是乱码。但...
  • 撰写新邮件,使用MAPI对话框撰写及发送电子邮件,使用设计的窗体NewMsg撰写及发送电子邮件,在删除当前邮件后,下一封邮件的位置设置为当前位置,这时需要判断该邮件是否已经在子窗体MsgView中显示,如是,将其设为...
  • VB6.0 收发邮件一例,附代码

    热门讨论 2012-08-10 10:49:38
    撰写新邮件,使用MAPI对话框撰写及发送电子邮件,使用设计的窗体NewMsg撰写及发送电子邮件,在删除当前邮件后,下一封邮件的位置设置为当前位置,这时需要判断该邮件是否已经在子窗体MsgView中显示,如是,将其设为...
  • 24、vb6判断鼠标左键被按下.txt 25、vb6屏幕任意截图.txt 26、vb6全局键盘钩子.txt 27、Vb6如何注册OCX控件.txt 28、vb6什么是键盘虚拟键?.txt 29、vb6使控件大小随窗体的变化而变化.txt 30、vb6使用ShellExecute...
  • vb2008日语版记事本

    2012-01-30 12:06:56
    支持文件打开判断文件是否改动,正反向大小写搜索,右键选择文字goole搜索,窗体可透明化,背景音乐。可拖拽打开文本。因是在日文系统下编写,需把系统unicode改为日语,不然日文显示乱码,无法运行。bug仍然有
  • 撰写新邮件,使用MAPI对话框撰写及发送电子邮件,使用设计的窗体NewMsg撰写及发送电子邮件,在删除当前邮件后,下一封邮件的位置设置为当前位置,这时需要判断该邮件是否已经在子窗体MsgView中显示,如是,将其设为...
  • 判断窗体是否已经打开 Public Function OpenForm(ByVal myform As Form, ByVal MdiForm As Form) As Boolean Dim form As Form For Each form In MdiForm.MdiChildren If form.Text = myfor
        '判断该窗体是否已经打开
        Public Function OpenForm(ByVal myform As Form, ByVal MdiForm As Form) As Boolean
            Dim form As Form
            For Each form In MdiForm.MdiChildren
                If form.Text = myform.Text Then
                    form.Activate()
                    Return True
                End If
            Next
            Return False
        End Function
     
     
        '系统退出时的代码
        Public Sub ExitSystem(ByVal Form_Name As String)
            If Form_Name = "Exit" Then
                '  If MsgBox("您真的要退出文件管理系统吗?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "退出系统") = MsgBoxResult.Yes Then
                Application.Exit()
                End
                'End If
            End If
        End Sub
     

        '判断字符是否为数字型,当为数字时返回True,不为时返回False
        Public Function IsNumeric(ByVal strText As String) As Boolean
            Dim charstr As Char
            For Each charstr In strText
                If Not Char.IsNumber(charstr) Then
                    Return False
                End If
            Next
            Return True
        End Function
     

        '加密函数
        Function EnPas(ByVal CodeStr As String) As String
            Dim CodeLen As Integer = 30
            Dim CodeSpace, Been, NewCodeInt As Integer
            Dim EnPasStr As String = ""
            Dim NewCode As String
            CodeSpace = CodeLen - CodeStr.Length
            If Not CodeSpace < 1 Then
                For cecr As Integer = 1 To CodeSpace
                    CodeStr = CodeStr & Chr(21)
                Next
            End If
            NewCodeInt = 1
            NewCode = 1
            For cecb As Integer = 1 To CodeLen
                Been = CodeLen + Asc(CodeStr.Substring(cecb - 1, 1)) * cecb
                NewCode = NewCode * Been
            Next
            CodeStr = NewCode
            NewCode = Nothing
            For cec As Integer = 1 To CodeStr.Length
                Try
                    NewCode = NewCode & CfsCode(CodeStr.Substring(cec - 1, 3))
                Catch ex As Exception
                    Try
                        NewCode = NewCode & CfsCode(CodeStr.Substring(cec - 1, 2))
                    Catch exs As Exception
                        NewCode = NewCode & CfsCode(CodeStr.Substring(cec - 1, 1))
                    End Try
                End Try
            Next
            For cec As Integer = 20 To NewCode.Length - 18 Step 2
                EnPasStr = EnPasStr & NewCode.Substring(cec - 1, 1)
            Next
            Return EnPasStr
        End Function
        '加密子函数
        Function CfsCode(ByVal Word As String) As String
            Dim CfsCodeStr As String = ""
            For cc As Integer = 1 To Word.Length
                CfsCodeStr = CfsCodeStr & Asc(Word.Substring(cc - 1, 1))
            Next
            CfsCodeStr = Hex(CfsCodeStr)
            Return CfsCodeStr
        End Function
     

        '打开某一个程序              程序的路径
        Public Function Openfile(ByVal FilePath As String) As Boolean
            Try
                System.Diagnostics.Process.Start(FilePath)
                Return True
            Catch ex As Exception
                MsgBox(ex.Message)
                Return False
                Exit Function
            End Try
        End Function
     
    #Region " XML文件操作部分(系统设置) "
        Public Sub RendXml(ByVal filename As String)
            Dim falg As Boolean = True
            Dim fi As System.IO.FileInfo
            fi = New System.IO.FileInfo(filename)
            If fi.Exists Then
                Dim doc As New XmlDocument
                doc.Load(filename)
                Dim nodeRoot = doc.DocumentElement
                '连接数据库的IP、数据库名称、用户名、密码
                Sys_Data_Source = nodeRoot.SelectSingleNode("Sys_Data_Source").InnerText
                Sys_Data_Catalog = nodeRoot.SelectSingleNode("Sys_Data_Catalog").InnerText
                Sys_Data_User = nodeRoot.SelectSingleNode("Sys_Data_User").InnerText
                Sys_Data_Password = nodeRoot.SelectSingleNode("Sys_Data_Password").InnerText
            Else
                MessageBox.Show("系统初始化出错,请与系统管理员联系!!", "严重警告", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End
            End If
        End Sub
    #End Region
     
    展开全文
  • 打开VB6,新建工程 添加部件Microsoft Internet Transfer Controls. 在form中添加2个按钮,2个文本框和Inet控件 代码如下: Option Explicit ''这段代码使用了GetHeader来返回页面信息,比较准确一些 ''...
  • VB程序设计综合复习题 1、叙述Visual Basic的特点。 2、当窗体上有三个文本框和一个命令按钮,若程序运行时,焦点定位在第三个文本框(Text3)处,应对何控件的什么属性进行何种设置? 3、若要对窗体上的三个文本框...
  • If cmdAdd.Caption = "保存" Then '判断是否有输入的信息未保存 ret = MsgBox("新增数据还未保存,是否退出?", vbQuestion + vbYesNo) '获取用户的选择 If ret = vbNo Then '选择“否” Exit Sub '退出当前过程...
  • VB自动关机源码.rar

    2009-10-23 11:58:28
    Private IsToday As Boolean = True '判断是否是今天的变量 Private delay As Integer '延时多少秒放关机 Private lastTime As Integer '关机的倒计时 Private action As String '关机或重启或注销 Private ...
  • vb.net2008工程源代码. 网上讲系统托盘,演示系统托盘的...框架已经提供,包含很多知识点:是否在任务栏显示,判断鼠标左右键,关闭窗体对应的过程,获取句柄等技术细节都一目了然,大家可以根据自己需求自行更改,祝使用愉快
  • 实例127 利用IsNumeric函数判断是否为数字 实例128 统计某个字符在一个字符串变量中的出现次数 实例129 判断字符串中某一字符是否大写 实例130 判断字符串是否为日期或时间 实例131 判断获得字符串中大写字符的...
  • 实例127 利用IsNumeric函数判断是否为数字 实例128 统计某个字符在一个字符串变量中的出现次数 实例129 判断字符串中某一字符是否大写 实例130 判断字符串是否为日期或时间 实例131 判断获得字符串中大写字符的...
  • '判断该记录是否存在 If rst.RecordCount <> 0 Then DBExist = rst.RecordCount Else DBExist = 0 End If con.Close End Function Public Function txtIsNull(txt As TextBox) As Boolean If Trim(txt.Text...
  • Excel_VBA教程

    2014-09-22 11:36:34
    9.打开ACCESS窗体 338 10.打开ACCESS报表 343 11.运行ACCESS查询 345 12.运行选择查询 347 13.运行参数查询 348 14.调用ACCESS函数 350 15.获取ACCESS数据到EXCEL工作表 350 16.使用GETROWS方法获取数据 350 17.使用...
  • GetBinaryType 判断文件是否可以执行 GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    9.打开ACCESS窗体 338 10.打开ACCESS报表 343 11.运行ACCESS查询 345 12.运行选择查询 347 13.运行参数查询 348 14.调用ACCESS函数 350 15.获取ACCESS数据到EXCEL工作表 350 16.使用GETROWS方法获取数据 350 17.使用...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    实际上这里的评价主要从学生的掌握程度、理解程度和是否能独立地开发类似的软件以及实际动手能力、创新能力等指标来进行评价;从案例的选取课堂实施以及教学艺术等方面进行评价,只有综合评价各个因素才能正确地进行...
  • '判断是否有记录,如果没有记录,则提示选择操作人员 If rsdel.BOF = True Or rsdel.EOF = True Then t = MsgBox("请选择操作员姓名!", vbOKOnly, "无记录") Else '否则进行删除,并显示成功删除操作人员对话框...
  • 实例181 判断输入数据是否符合要求 332 实例182 批量数据保存前的判断 335 实例183 防止数据保存时出现运行时错误 338 4.9 数据删除 340 实例184 删除表格中指定的记录 340 实例185 利用SQL语句删除数据 341 ...
  • 实例181 判断输入数据是否符合要求 332 实例182 批量数据保存前的判断 335 实例183 防止数据保存时出现运行时错误 338 4.9 数据删除 340 实例184 删除表格中指定的记录 340 实例185 利用SQL语句删除数据 341 ...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

vb判断窗体是否打开