精华内容
下载资源
问答
  • 前几天,我们在调试代码的过程中我发现,我们的画图板窗体上关闭按钮不可用,这是什么原因呢,查了关于窗体得属性只有控制Maxbutton 和MinButton,而没有控制关闭的,我们找来了师傅,在百度上查了又查终于找到答案了!...

    前几天,我们在调试代码的过程中我发现,我们的画图板窗体上关闭按钮不可用,这是什么原因呢,查了关于窗体得属性只有控制Maxbutton MinButton,而没有控制关闭的,我们找来了师傅,在百度上查了又查终于找到答案了!

    原来在代码中利用了API函数才实现了这样的效果.

    这是相关代码:

    PrivateDeclare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long,ByVal bRevert As Long) As Long

    PrivateDeclare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByValnPosition As Long, ByVal wFlags As Long) As Long

    PrivateConst MF_REMOVE = &H1000

    PrivateConst SC_CLOSE = &HF060

     

    FunctionDisabled(ChWnd As Long)

    DimhMenu, hendMenu As Long

    Dim c AsLong

    hMenu =GetSystemMenu(ChWnd, 0)

    RemoveMenuhMenu, SC_CLOSE, MF_REMOVE

    EndFunction

    '然后在SubForm_Load()中加入Disabled Me.hwnd即可:

    PrivateSub Form_Load()

    DisabledMe.hwnd

    End Sub

    这让我很惊奇,一个小小的关闭按钮,怎么还用API函数来控制呢,看来我的学习还不够,连冰山一角都没学到,API好神秘啊.功能也那么强大,什么时候我才能运用自如了.

    我得努力!!!

    通过这个小问题的学习,我悟出,遇事不要慌,不要先在心理上给自己打退堂鼓,这才是对待问题的良策呀!!!

    展开全文
  • 本人在excel2007中写了一段...将文件拷到另一台windows10的笔记本中,同样是excel2007,所有按VB控件均不可用,包括命令按钮。改为设计模式,控件也不可编辑。宏安全里已经设为启用所有宏。哪位大神解答一下什么原因?
  • 在我们日常编程中,进入VB编程开发界面后,默认的窗体运行后是下图的状态,右上角的关闭按钮是直接可用的状态。但是在实际开发中,有时候根据实际功能需要,会出现想让右上角的关闭按钮起作用时的情形,那么应该...

    在我们日常编程中,进入VB编程开发界面后,默认的窗体运行后是下图的状态,右上角的关闭按钮是直接可用的状态。

    b0dbc262058437ff23f72d97c97071db.png

    但是在实际开发中,有时候根据实际功能需要,会出现不想让右上角的关闭按钮起作用时的情形,那么应该如何做呢?

    74e868815afa2da935306221e9b0c1a4.png

    代码实现:

    标准模块代码:

    Option ExplicitDeclare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongDeclare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongDeclare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As LongPublic Const MF_BYPOSITION = &H400&

    窗体中代码:

    Option ExplicitPrivate Sub Form_Load() '窗体载入时调用模块中的方法禁用关闭按钮    Dim hwndMenu As Long    Dim c As Long    hwndMenu = GetSystemMenu(Me.hwnd, 0)    c = GetMenuItemCount(hwndMenu)    DeleteMenu hwndMenu, c - 1, MF_BYPOSITION    c = GetMenuItemCount(hwndMenu)    DeleteMenu hwndMenu, c - 1, MF_BYPOSITIONEnd SubPrivate Sub Command1_Click() '退出    EndEnd Sub

    赶快实际运行,体验一下吧~

    ▼更多编程干货▼VB编程语言基础知识点总结(转)VB6.0中文简体版安装视频教程!VB开发的实际项目展示!VB编程就是这么强大!

    大家在学习VB编程的过程中有不懂之处,可以添加下图小编微信号:vbyjk521 ,学习问题在线解答。

    72449c6e34fdc06a1c01129e1692dde4.png

    展开全文
  • vb.net计算器代码

    2011-02-22 23:40:56
    2.“+”,“—”,“*”,“/“每次运算时单击其中一个,其它按钮能被用(要下次计算时才可用),(如果没有先输入 数据就按下这运算符,会弹出提示对话框提示先输入数据) 3.修改按钮,如果是数据,每按下该...
  • VB控件数组之操作技巧

    万次阅读 热门讨论 2012-06-17 19:33:34
    设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。 Private Sub Command1_Click(Index ...
    
    

    一.运行中设置数组控件的属性

    设窗体上有若干个以 Command1 命名的命令按钮,现要求:点击其中一个按钮后,该按钮不可用,而其它的按钮均可用。以下几行代码可以实现这个要求,比一个一个的设置高效得多。

    Private Sub Command1_Click(Index As Integer)
    
    Dim i As Integer '计数器
    Dim comNum As Integer '按钮的索引号
    comNum = 0
    For i = 0 To Command1.Count - 1
    comNum = comNum + 1
    If comNum > Command1.Count - 1 Then comNum = 0
    Command1(comNum).Enabled = True '让所有按钮可用
    Next
    Command1(Index).Enabled = False '让被单击按钮不可用
    
    End Sub


    二、运行中添加和卸载数组控件

    窗体上已有一个文本框Text1,程序需要在运行时动态地创建若干文本框,可这样实现:

    1.首先,设计时给Text1的Index属性设置为"0",这一步很重要:有了索引号才能创建数组控件;

    2.编写代码:[之前请给工程添加两个命令按钮,Name属性取缺省值,Caption属性分别为:添加、卸载]

    Private Sub Command1_Click()
    
    Dim txtNum As Integer 'Text1的Index号
    Dim Num As Integer '赋给各TextBox的值
    
    txtNum = 0 '初值
    Num = 1 '初值
    
    Text1(0).Text = "Text" & Num '第一个Text1的值
    
    Dim i As Integer '计数器
    For i = 0 To 4 '添加五个TextBox
    txtNum = txtNum + 1
    Num = Num + 1
    Load Text1(txtNum) '加载文本框
    Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 '设置位置
    Text1(txtNum).Text = "Text" & Num '加载内容
    Text1(txtNum).Visible = True '令其可见:不能漏
    Next
    
    Command1.Enabled = False 
    Command2.Enabled = True
    
    End Sub
    
    Private Sub Command2_Click()
    
    Dim i As Integer, N As Integer
    N = 0
    For i = 1 To Text1.Count - 1
    N = N + 1
    Unload Text1(N)
    Next
    
    Command1.Enabled = True
    Command2.Enabled = False
    
    End Sub
    


    三、给运行中添加的数组控件命名并编写事件

    其实例二已经给数组控件命了名,只是简单了些。本例将文件夹"F:\Txt"下的所有.txt的文件名作为菜单的Caption添加到菜单项里[请事先建立此文件夹并拷贝一些.txt文件,或者更改代码],当点击这些菜单,程序将调出Windows的记事本打开相应的文件。
    键入以下代码前请启动VB的菜单编辑器,建立一个父菜单项[Naem和Caption属性任意],然后在此父菜单下建立一个子菜单,Name属性为"mnuFiles",Caption属性为"没有文件"。

    Dim MyPath As String '路径名变量
    
    '添加并命名菜单过程
    Private Sub AddMenu()
    
    Dim MenuNum As Integer '菜单索引号变量
    Dim MyFiles As String '文件名变量
    
    MenuNum = 0 '初值
    
    MyFiles = Dir(MyPath + "*.txt") '仅查找文本文档
    If MyFiles = "" Then Exit Sub '为空则退出过程
    
    mnuFiles(0).Caption = MyFiles '给第一个菜单命名
    
    Do Until MyFiles = ""
    MyFiles = Dir()
    If MenuNum = 0 Then MenuNum = 1
    MenuNum = MenuNum + 1
    Load mnuFiles(MenuNum) '加载菜单
    mnuFiles(MenuNum).Visible = True '设置为可见:不能漏
    mnuFiles(MenuNum).Caption = MyFiles
    If mnuFiles(MenuNum).Caption = "" Then Unload mnuFiles(MenuNum)
    '若菜单名为空则卸载掉
    Loop
    
    End Sub
    
    Private Sub Form_Load()
    
    MyPath = "F:\Txt\" '规定路径
    Call AddMenu '执行添加菜单过程
    
    End Sub
    
    Private Sub mnuFiles_Click(Index As Integer)
    
    Dim ret As String
    '用Windows的记事本打开文件:注意中间的空格不能少
    ret = "Notepad.exe" & " " & MyPath & mnuFiles(Index).Caption
    Shell ret, vbNormalFocus
    
    End Sub
    


    四、控件在窗体上的排列问题
    当然添加的数组控件多了,排列确实是个问题。下面的例子给窗体添加499个Label控件,加上事先绘制好的Index号定义为0的控件,总共有500个,能在窗体上从左到右、从上到下整齐地排列。程序运行时要花些许时间。

    Option Explicit
    
    Private Sub Form_Load()
    
    Me.Width = 6800
    Me.Height = 6000
    Me.Caption = "添加标签演示"
    With Label1(0)
    .Top = 0
    .Left = 120
    .Height = 200
    .Width = 300
    .Caption = ""
    End With
    
    AddLabels
    
    End Sub
    
    Private Sub AddLabels()
    
    Dim i As Integer '计数器
    Dim Num As Integer 'Label的Index号
    Dim k As Integer '判断是否满行
    Dim n As Integer '行数计数器
    
    Num = 0
    k = 0
    n = 0
    
    Label1(0).Caption = Num + 1
    
    For i = 1 To 499
    Num = Num + 1
    Load Label1(Num) '加载Label控件
    
    Select Case k 
    Case 0
    Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
    If Num = 20 Then n = n + 1: k = n
    
    Case n
    Label1(n * 20).Left = 120
    Label1(n * 20).Top = Label1(0).Height * n
    Label1(Num).Top = Label1(0).Height * n
    Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
    If Num = (n + 1) * 20 Then n = n + 1: k = n
    End Select 
    
    Label1(Num).Caption = Num + 1
    Label1(Num).Visible = True
    Next
    
    End Sub 
    


    展开全文
  • VB试题.doc

    2012-12-15 21:16:57
    1.VB中若要产生一消息框,可用__msgbox__函数来实现。 2.常量是指在程序运行过程中, 其值能改变 的量。 3.整数类型数据分别包括整型和 长整型 数据。 4、在VB集成开发环境中,运行应用程序的方法有三种:...
  • vb控件使用笔记

    2007-03-07 18:53:00
    1.sstab 如果在工具栏上双击能够进入SSTab ,其容器为form,必须...可用代码来建立控件与SSTab 的关联,例如Set Command1.Container = SSTab ,按钮将出现在当前页签上,要向哪个页签上加可先用SSTab .Tab=n来指定。

    1.sstab

     如果在工具栏上双击不能够进入SSTab ,其容器为form,必须在sstab的页签面板上拖拉鼠标绘制;

    可用代码来建立控件与SSTab 的关联,例如Set Command1.Container = SSTab ,按钮将出现在当前页签上,要向哪个页签上加可先用SSTab .Tab=n来指定。


    展开全文
  • vb禁用窗体最大化、最小化和关闭快捷菜单,禁用最大化、最小化不可用,重点实现了禁止关闭窗口的功能,禁止后窗口上的关闭按钮变成灰色不可点击了,在实现方面,核心代码如下:  Private Sub Form_Load()  ...
  • 将.NET WinForms,C#或VB.Net主题化为Google的材料设计原则。 该项目暂时暂停(虽然我经常更新,但我仍计划将来进行;也就是说,我仍然阅读每个问题并检查每个PR) 有一个快速的问题吗? 想讨论一些改进或质疑...
  • vb Script参考文档

    2009-07-28 22:13:02
    LBound 函数 对于指示的数组维数,返回最小的可用下标。 LCase 函数 返回已被转换为小写字母的字符串。 Left 函数 返回字符串最左边的指定数量的字符。 Len 函数 返回字符串中的字符数量,或者存储变量所需的字节...
  • 为了提高执行效率,修改了vbalDTab6FES.ocx的源代码,增加可以快速批量设置所有Tab标签的可用属性BarEnabled? 从PageManager?分离出PageCollection?类,此类用于专门管理页面集合 修改了工具栏窗口创建的方式,将此...
  • 为了提高执行效率,修改了vbalDTab6FES.ocx的源代码,增加可以快速批量设置所有Tab标签的可用属性BarEnabled? 从PageManager?分离出PageCollection?类,此类用于专门管理页面集合 修改了工具栏窗口创建的方式,将此...
  • zbfdbt.zip 用VB6写的浮动文本按扭控件(有源代码)(21KB) 79,Polyform.zip 创建规则窗口(有例子)(94KB) 80,eyes.zip 跟着鼠标转的眼睛控件(有源代码)(6KB) 81,resize.zip 在调整窗体大小...
  • zbfdbt.zip 用VB6写的浮动文本按扭控件(有源代码)(21KB) 79,Polyform.zip 创建规则窗口(有例子)(94KB) 80,eyes.zip 跟着鼠标转的眼睛控件(有源代码)(6KB) 81,resize.zip 在调整窗体大小...
  • VB.NET 入门经典 (第三版)

    热门讨论 2009-07-29 16:56:26
    7.1.2 MessageBox中的可用按钮 194 7.1.3 设置默认按钮 195 7.1.4 其他选项 195 7.1.5 Show方法的语法 195 7.1.6 MessageBox的示例 197 7.2 Open对话框 201 7.2.1 OpenFileDialog控件 201 7.2.2 StreamReader类 203 ...
  • 整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...
  • 整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...
  • 整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...
  • 整个压缩文件才277k,还包括一个示例程序和源代码(280KB) 60,s013_ariadtbar.ZIP 用这个控件做工具条须象VB自带的要用到ImageList控件,同时还有许多很方便的功能,慢慢去发掘吧(154KB) 61,s012.ZIP ...
  • 7.1.2 MessageBox中的可用按钮 194 7.1.3 设置默认按钮 195 7.1.4 其他选项 195 7.1.5 Show方法的语法 195 7.1.6 MessageBox的示例 197 7.2 Open对话框 201 7.2.1 OpenFileDialog控件 201 7.2.2 StreamReader类 203 ...
  • 7.1.2 MessageBox中的可用按钮 194 7.1.3 设置默认按钮 195 7.1.4 其他选项 195 7.1.5 Show方法的语法 195 7.1.6 MessageBox的示例 197 7.2 Open对话框 201 7.2.1 OpenFileDialog控件 201 7.2.2 StreamReader类 203 ...
  • 实例48 隐藏程序被“关闭程序”发现  实例49 枚举系统中所有进程  实例50 任务管理器  实例51 启动其他应用程序  实例52 调用系统中的一些功能对话框  实例53 多线程方式同时进行多项任务  实例54 ...
  • 验证vba中可用的免费QR码二维码控件

    热门讨论 2012-03-25 23:13:15
    接下来与VB一样的地方就是如何在VBA代码中引用QRmaker控件了,这点和VB中有点小区别。 添加“模块”,添加“过程”,输入代码。 Public Sub QRCodeTest() '定义QRString变量,存储要生成二维码的字符串 ...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实多,因此这个Java...
  • 声明方法的存在而去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但能在该类中实现该类的情况。能创建abstract 类的实例。然而可以创建一个变量,其...
  • ASP.NET的网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    第4章 ASP.NET的网页代码模型及生命周期 从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

vb按钮不可用代码