VB程序设计程序用户界面设计
- 格式:ppt
- 大小:403.50 KB
- 文档页数:45
VB界面设计现在越来越多的软件都有了很Cool的2D造型,什么×××× XP啦,×××× 2002之类的,看来争夺软件霸权的地位,2D界面是必不可少的,有很多人认为Visual Basic语言的先天不足导致它不能够很灵活的改变界面,让俺们来看看究竟吧。
如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更爽,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不爽,看看VB是怎么利用别的东东来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,Name:LblBtn,BorderStyle: 1,Appearance: 0,Alignment: 2,这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name 属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:Private Const LBL_BACK_COLOR =&HE0E0E0 ’正常时Label控件的背景色Private Const LBL_WHEN_MOUSE_MOVE =&HC0C0C0 ’鼠标移动时Label的背景色Private Const LBL_WHEN_MOUSE_DOWN =&H808080 ’鼠标按下时Label的背景色再在Form的Load事件中输入以下内容Private Sub Form_Load()Dim Count As IntegerFor Count =0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景Next CountEnd Sub然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:Private Sub LblBtn_MouseDown(Index As Integer,Button As Integer,Shift As Integer,X As Single,Y As Single)’当鼠标按在LblBtn上时LblBtn(Index).BackColor =LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色End SubPrivate Sub LblBtn_MouseMove(Index As Integer,Button As Integer,Shift As Integer,X As Single,Y As Single)’鼠标在LblBtn上面移动时触发该事件Dim Count As IntegerDoEvents ’暂时将系统控制权教给系统If Button T hen Exit Sub ’如果按钮被按下就退出该过程For Count =0 To 3If Count <> Index Then ’如果按下的不是其它按钮LblBtn(Index).BackColor =LBL_BACK_COLOR ’将背景设为正常ElseLblBtn(Index).BackColor =LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景End IfNext CountEnd SubPrivate Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)Dim Count As IntegerDoEventsFor Count=0 To 3LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景Next CountEnd本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label 控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)OK,Label控件就讲到这里,在来说说TextBox控件,各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下Appearance 0BorderStyle 1MutilLine True千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBoxDim bkColor As LongPrivate Sub Form_Load()bkColor=RGB(235,235,235)Text1.BackColor=bkColorEnd Sub在Form和Text1的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)Text1.BorderStyle =0End SubPrivate Sub Text1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)DoEventsText1.BorderStyle =1End Sub在按下F5试试是不是很Cool?可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,首先声明:Private Type POINTAPIx As Longy As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI)As LongPrivate Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long,ByVal yPoint As Long)As LongPrivate Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)As Long但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)As Long只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:Public Function sSetFocus()As LongDim CPos As POINTAPI,Successfull As Boolean,hWnd As LongDoEventsSuccessfull =GetCursorPos(CPos)If Not Successfull Then Exit Sub ’如果未成功则退出该过程hWnd=WindowFromPoint(CPos.x,CPos.y)sSetFocus=nSetFocus(hWnd)End Sub在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer 事件中填入sSetFocus,在运行一下看看,效果怎么样?可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程->部件->Microsoft Windows Common Controls-2 6.0 (SP3)就是你的答案,至于卷动TextBox 就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API 的声明:Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" ()As Long 注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,lParam As Any)As Long’这个该不要俺多介绍了吧Public Const HTCAPTION =2 ’代表窗体的标题区Public Const WM_NCLBUTTONDOWN =&HA1 ’表示非工作区左键按下原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:Public Sub MoveForm(hWnd As Long)DoEventsReleaseCaptureSendMessage hWnd,WM_NCLBUTTONDOWN,HTCAPTION,0&End Sub在Form的MouseMove事件中:Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)If Button=vbLeftButt on Then MoveForm hWnd’如果按下鼠标左键就移动窗体End Sub台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:’一下声明是用在ToolSign的AutoQuit属性的Public Const EXIT_FORCE =2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出Public Const EXIT_MESSAGE =1 ’由操作系统发送关闭消息Public Const EXIT_CUSTOM =Not (EXIT_FORCE Or EXIT_MESSAGE)’自定义将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:Private Sub Form_Load()With Sign1.AutoQuit =EXIT_CUSTOM.ParentsHWND =hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码End WithEnd SubSign1的Click事件Private Sub Sign1_Click()End ’关闭程序End Sub在Form的Resize事件中添加一下代码:Private Sub Form_Resize()Sign1.Width =WidthEnd Sub如果想让窗体可以改变大小,可以修改一下属性Caption ""BorderStyle 2或5ControlBox False实际情况如图不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library然后在窗体Load事件中输入:Private Sub Form_Load()Dim System As e_Dogkid_Runtime_Library.SystemSet System =New e_Dogkid_Runtime_Library.SystemShowSystem.BoomIt hDC,60,Width,Height,Left,TopSet System =NothingEnd Sub。
vb界面设计界面设计☆本章学习内容用户界面是一个应用程序最重要的部分,它是最直接的现实世界。
对用户而言,界面就是应用程序,它们感觉不到幕后正在执行的代码。
不论花多少时间和精力来编制和优化代码,应用程序的可用性仍然依赖于界面。
8.1 多文档界面、8.2 工具栏和状态栏、8.3 RichTextBox控件、8.4 应用程序向导8.1 多文档界面下一节多文档界面是指,一个应用程序,它提供一个桌面上的父窗口,而该窗口包含有其他该应用程序中打开的子窗口。
当该父窗口最小化或关闭时,它所包含的所有子窗口都最小化或关闭。
多文档界面 (MDI) 允许创建在单个容器窗体中包含多个窗体的应用程序。
象 Microsoft Excel 与 Microsoft Word for Windows 这样的应用程序就具有多文档界面。
MDI 应用程序允许用户同时显示多个文档,每个文档显示在它自己的窗口中。
文档或子窗口被包含在父窗口中,父窗口为应用程序中所有的子窗口提供工作空间。
例如:Microsoft Excel 允许创建并显示不同样式的多文档窗口。
每个子窗口都被限制在 Excel 父窗口的区域之内。
当最小化 Excel 时,所有的文档窗口也被最小化,只有父窗口的图标显示在任务栏中。
子窗体就是 MDIChild 属性设置为 True 的普通窗体。
一个应用程序可以包含许多相似或者不同样式的 MDI 子窗体。
在运行时,子窗体显示在 MDI 父窗体工作空间之内(其区域在父窗体边框以内及标题与菜单栏之下)。
当子窗体最小化时,它的图标显示在 MDI 窗体的工作空间之内,而不是在任务栏中,如图 8.1 所示。
图 8.1 显示在 MDI 窗体工作空间之内的子窗体注意一个应用程序也可以包括标准的、不是包含在 MDI 窗体之内的非MDI 窗体。
MDI 应用程序中标准窗体的典型用法是显示模式的对话框。
MDI窗体相似于具有一个限制条件的普通窗体。
除非控件具有 Align 属性(如 PictureBox 控件)或者具有不可见界面(如 Timer 控件),否则不能将控件直接放置在 MDI 窗体上。
第2章 Visual Basic语言基础知识2.1 Visual Basic定义了几种数据类型,变量有哪几种数据类型,常量有哪几种数据类型。
【答】Visual Basic基本数据类型:1. 字符串型(String):字符串分为变长字符串和定长字符串两种。
2. 数值型:数值型数据分为整型数和浮点数两类。
3. 货币型(Currency)4. 变体型(Variant)5. 字节型(Byte)6. 布尔型(Boolean)7. 日期型(Date)8. 对象型(Object)Visual Basic中包含两种常量,即文字常量和符号常量。
变量的基本数据类型:Byte(字节型),Boolean(布尔型),Integer(整型),Long (长整型),Single(单精度型),Double(双精度型),Currency(货币型),Date(日期型),Object(对象型),String(变长字符串),String(定长字符串),Variant(变体型、数字),Variant(变体型、字符)2.2 符号常量和变量有什么不同点?【答】符号常量一经定义,就不能在程序中的其他位置改变其值。
变量的值在程序中可以改变。
2.3 指出下列正确的变量名:g(1-k) 6adhs *sss kL2.1 Printx+1 ahi π .ex3 j5h【答案】正确的变量名:ahi,j5h2.4 指出下列正确的数字形式-1.25 ±0.123 89E D2585 10^(2.7) 3^5【答案】2.5 下列表达式若有错误,请改正(1) ts+cos(300) (2) (x+y)^(25÷s)(3) [(X1+X2)*(X1-3)-6]*7 (4) (X÷-2)+sin(1.2+π)【答案】(1) ts+cos(30*3.141593/180)(2) (x+y)^(25/s)(3) ((X1+X2)*(X1-3)-6)*7(4) (X/(-2))+sin(1.2+3.141593)2.6 写出下列数学式的Visual Basic表达式(1) sin(a)[cos(b)+1.5](2) (x1+4)5(e2-a)(3) 36[(x1+π)(x1÷3.3)-b](4) x-2π)【答案】Visual Basic表达式:(1) sin(a)*(cos(b)+1.5)(2) (x1+4)^5*(Exp(2)-a)(3) 36*((X1+3.141593)*(x1/3.3)-b)(4) x^(-2)+5.8*sin(3.5*3.141593)第3章顺序结构程序设计3.1 下列语句是否有错?若有,请改正。
可视化程序设计VB题目应用程序界面设计在当今数字化的时代,应用程序的界面设计对于用户体验和程序的易用性至关重要。
可视化程序设计语言 VB(Visual Basic)为我们提供了强大的工具和功能,使得创建吸引人且功能强大的应用程序界面变得相对容易。
首先,让我们来了解一下应用程序界面设计的重要性。
一个好的界面设计能够吸引用户的注意力,提高用户的操作效率,减少错误,并增强用户对应用程序的满意度。
它就像是应用程序的“门面”,直接影响着用户对整个程序的第一印象。
在 VB 中,设计应用程序界面的第一步是规划布局。
我们需要根据应用程序的功能和用户需求,确定各个控件的位置和大小。
例如,如果是一个数据输入的界面,我们可能会将文本框、下拉列表和按钮等控件合理地排列,以便用户能够方便地进行操作。
控件的选择也是界面设计中的关键环节。
VB 提供了丰富的控件,如按钮(Button)、文本框(TextBox)、标签(Label)、列表框(ListBox)、组合框(ComboBox)等等。
每个控件都有其特定的用途和特点。
比如,按钮用于触发特定的操作,文本框用于用户输入文本,标签用于显示静态的提示信息。
在布局和选择控件之后,我们还需要考虑界面的颜色和字体搭配。
颜色的选择要符合应用程序的主题和功能,避免使用过于刺眼或难以区分的颜色组合。
字体的大小、样式和颜色也要清晰可读,以确保用户能够轻松获取信息。
接下来,让我们通过一个具体的例子来看看如何在 VB 中实现一个简单的应用程序界面设计。
假设我们要创建一个学生成绩管理系统的登录界面。
我们首先在 VB 的窗体上放置两个文本框,分别用于输入用户名和密码。
然后,放置一个登录按钮和一个取消按钮。
为了增加界面的美观性,我们可以在背景上添加一个合适的图片或者使用一种柔和的背景颜色。
对于文本框,我们可以设置其边框样式、输入限制等属性。
比如,密码文本框可以设置为只显示星号来保护用户输入的密码。
登录按钮可以设置为突出显示的颜色,以吸引用户点击。
vb用户界面设计实验报告(共9篇) VB第7章用户界面设计一、选择题1、下列控件中,没有Caption属性的是( )。
A. 框架B. 列表框C. 复选框D. 单选按钮2、复选框的Value属性为1时,表示( )。
A. 复选框未被选中B. 复选框被选中C. 复选框内有灰色的勾D. 复选框操作有错误3、用来设置粗体字的属性是( )。
A. FontItalicB. FontNameC. FontBoldD. FontSizeE. FontUnderline4、假定定时器的Interval属性为1000,Enabled属性为Ture,调用下面的事件过程,程序运行结束后变量x的值为( )。
Dim x As IntegerSub Timer1_Timer( )For i = 1 To 10x = x + 1Next iEnd SubA. 1000B. 10000C. 10D. 以上都不对5、在下列说法中,正确的是( )。
A. 通过适当的设置,可以在程序运行期间让定时器显示在窗体上B. 在列表框中不能进行多项选择C. 在列表框中能够将项目按字母顺序从大到小排列D. 框架也有Click和DblClick事件6、在用菜单编辑器设计菜单时,必须输入的项有( )。
A. 快捷键B. 标题C. 索引D. 名称7、在下列关于菜单的说法中,错误的是( )。
A. 每个菜单项都是一个控件,与其他控件一样也有自己的属性和事件B. 除了Click事件之外,菜单项还能响应其他的,如DblClick等事件C. 菜单项的捷径键不能任意设置D. 在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能被用户选择8、在下列关于通用对话框的叙述中,错误的是( )。
A. CommandDialog1.ShowFont显示“字体”对话框B. 在“打开”或“另存为”对话框中,用户选择的文件名可以经FileTitle属性返回C. 在“打开”或“另存为”对话框中,用户选择的文件名及其路径可以经FileName属性返回D. 通用对话框可以用来制作和显示“帮助”对话框二、填空题1、复选框( )属性设置为2——Grayed时,变成灰色,禁止用户选择。
VB程序界面设计VB是一种基于事件驱动的编程语言,常用于开发Windows应用程序的用户界面。
程序界面设计对于VB程序的用户体验至关重要,好的界面设计可以提升用户的使用体验,提高程序的易用性和功能性。
下面将详细介绍VB程序界面设计的要点和原则。
1.界面布局要合理:VB程序的界面布局应该符合逻辑顺序,使用户可以轻松找到需要的功能和信息。
主要功能模块应该被置于窗口的显眼位置,并按照重要性进行排列。
相似的功能应该归类在一起,方便用户查找。
2.界面元素要直观:VB程序的界面元素,如按钮、文本框、下拉框等控件,应该具有直观的视觉效果,使用户可以直观地了解其功能和用途。
按钮应该有明确的标识,文本框和下拉框应该有默认值或提示文本,以提供相关的信息。
3.功能导航要清晰:VB程序的界面应该提供清晰明了的功能导航,使用户可以方便地找到需要的功能。
一般可以通过菜单栏、工具栏或导航栏来实现功能导航。
菜单栏提供了一级功能导航,工具栏提供了常用功能的快速访问,导航栏提供了程序的整体结构和主要功能。
4.输入反馈要及时:VB程序的界面应该能够及时地给出用户的输入反馈,以提高用户的操作效率和体验。
例如,在用户点击按钮之后,界面应该立即给出相应的反馈,如弹出提示框或改变按钮的状态。
5.错误提示要友好:VB程序的界面应该给出友好的错误提示,帮助用户识别和纠正操作错误。
错误提示信息应该明确、简洁,并且给出相应的解决方案。
例如,当用户输入不合法时,界面可以弹出一个提示框,告诉用户输入不合法,并提供相应的解决方式。
6.界面美观要素:VB程序的界面应该注重美观,以提高用户对程序的好感度和使用欲望。
界面元素的颜色、样式应该协调一致,避免刺眼的颜色和过分复杂的样式。
同时,界面的排版和字体的选择也应该考虑到用户的视觉感受,使界面整体看起来舒适、清晰。
7.简化操作要点:VB程序的界面应尽可能地简化用户的操作步骤,以提高用户的使用效率和舒适度。
可以采用一些技术手段,如自动填充、自动补全、批量操作等,来简化用户的重复操作或冗长操作。
VB课后习题解答第一、二章:1、简述VB6.0的主要特点答:方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。
2、当正常安装VB6.0后,误把Windows子目录删除。
当重新安装Windows后,是否需要再次安装VB6.0?答:要重新安装的。
因为安装VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows子目录,就必须重新安装VB6.0。
3、Visual Basic 6.0分为学习版、专业版和企业版,如何知道所安装的是哪个版本?答:在VB6.0的启动界面上,能显示对应的版本。
4、叙述建立一个完整应用程序的过程答:首先建立用户界面的控件对象(简称控件);然后对控件属性进行设置;再对控件事件过程及编程;保存应用程序;程序调试和运行。
5、Visual Basic 6.0有多种类型窗口,若要在设计时看到代码窗口,应怎样操作?答:选择“视图”—>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。
6、当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。
试问该工程涉及多少个要保存的文件?若要保存该工程的所有文件,应先保存什么文件?再保存什么文件?若不这样做,系统会出现什么信息?答:涉及两个文件要保存。
先保存窗体文件(.frm),再保存工程文件(.vbp)。
若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。
7、保存文件时,若不改变目录名,则系统默认的目录是什么?答:系统默认的目录是VB988、安装Visual Basic 6.0后,帮助系统是否也已安装?答:没有。
VB6.0的帮助系统在两张光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。
9、如何使用Visual Basic 6.0的帮助系统?答:最方便的方法是选定要帮助的内容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定内容有关的帮助信息。
VB程序界面设计在VB程序界面设计过程中,以下是一些关键因素需要考虑的:1.界面布局:合理的布局能够使用户能够快速找到所需功能和信息,常见的布局方式包括居中对齐、流式布局等。
同时,还需要考虑窗口的大小和比例,以适应不同的屏幕分辨率和显示设备。
2.控件选择:VB提供了丰富的控件库,包括文本框、按钮、列表框等。
在设计时,需要选择合适的控件来展示和输入数据,以及实现程序功能。
同时,还可以通过自定义控件的方式,使界面更加独特和专业。
3.颜色和图标:合适的颜色和图标能够提升界面的美观度和易用性。
可以选择符合应用主题和风格的配色方案,并使用统一的图标和按钮样式,使用户更容易理解和识别功能。
4.文字和字体:程序中的文字需要清晰、易读,并且与界面风格统一、合适的字体和字号能够提高用户的阅读体验,同时需要注意文字的布局和对齐,以及特殊符号的使用。
5.状态提示:通过合适的状态提示能够提高用户交互的响应性和准确性。
例如,在长时间操作时,通过进度条或提示窗口显示操作进度,提醒用户等待。
另外,对于错误信息和警告信息,需要使用可视化的方式提示用户,并提供相关的解决方案。
6.功能导航:对于复杂的程序,需要提供易用的导航方式,以帮助用户快速切换功能。
可以设计菜单栏、工具栏或侧边栏等方式,同时可以使用快捷键和功能提高用户的操作效率。
7.帮助文档:在程序界面中提供帮助功能,帮助用户理解和使用程序。
可以编写用户手册、FAQ等文档,并提供功能。
另外,还可以在界面中添加工具提示等方式,对控件的功能和用法进行说明。
8.响应式设计:随着移动设备的普及,响应式设计是不可忽视的重要方面。
可以通过自适应布局和媒体查询等技术,实现在不同终端和屏幕尺寸下的自动适应。
总之,在VB程序界面设计过程中,需要从用户的角度出发,关注用户需求,并结合开发技术和界面设计原则,创造出易用、美观和功能强大的用户界面。
通过合理的布局、控件选择、颜色和图标等设计手段,提升用户的操作体验和工作效率,从而提高程序的易用性和用户满意度。
vb程序设计登陆界面代码详例Imports System.Data.SqlClientPublic Class frmMagementMain'Inherits System.Windows.Forms.FormDim constr As String = "User ID=sa;pwd=a;Initial Catalog=zbb;Data Source=(local)" '定义一个变量,连接字符串Dim sqlstr As String = "select * from manid" '定义一个变量,SQL语句Dim mycon As New SqlConnection(constr) '定义一个变量,为一个连接对象Dim mycom As New SqlCommand(sqlstr, mycon) '定义一个变量,为命令对象Dim myReader As SqlDataReader '定义一个变量,阅读器Dim i As Integer = 0Dim userIDsys() As ArrayPrivate Sub frmMagementMain_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Loadmycon.Open() '打开这个联接myReader = mycom.ExecuteReader '把这个命令的连接送入阅读器myReader.Read()Dim k As Integer = 0While myReader.Read 'while 为遍历集合的每一项,用阅读器的read的方法来读取'定义一个变量的第一项k = k + 1'MsgBox(myReader.Item(1))End WhileMsgBox(k)End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click' Visual Basic 2005' Declare a new TextBox.Dim TextBox2 As New TextBox' Set the location below the first TextBoxTextBox2.Left = 102TextBox2.Top = 242' Add the TextBox to the form's Controls collection.Me.Controls.Add(TextBox2)TextBox2.Text = "这可是我动态加的控件呀"End SubPrivate Sub mnu_magement_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles mnu_magement.ClickDim frmlogin As frmlogin = New frmloginfrmlogin.Show()'GBmagemetPeple.Left = 8'GBmagemetPeple.Top = 28'GBmagemetPeple.Visible = TrueEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.ClickEnd SubEnd Class/////////////////////////////////////Imports System.Data.SqlClientPublic Class frmloginDim i As Integer = 0Dim constr1 As String = "" '定义一个变量,连接字符串Dim sqlstr1 As String = ""Dim mycon1 As New SqlConnection(constr1) '定义一个变量,为一个连接对象Dim mycom1 As New SqlCommand(sqlstr1, mycon1) '定义一个变量,为命令对象Dim myReader1 As SqlDataReader '定义一个变量,阅读器Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles OK_Button.ClickIf txtUsename.Text = "" Or txtPassword.Text = "" ThenMsgBox("请输入用户名和密码")Exit SubEnd Ifsqlstr1 = "select * from mgpep where usernameID='" & txtUsename.Text & "' andpasswordID='" & txtPassword.Text & "'" '定义一个变量,SQL语句constr1 = "User ID=sa;pwd=a;Initial Catalog=SaleCD;DataSource=(local)" '定义一个变量,连接字符串mycon1.ConnectionString = constr1mandText = sqlstr1mycon1.Open() '重新打开这个联接myReader1 = mycom1.ExecuteReader '第二次把这个命令的连接送入阅读器If myReader1.VisibleFieldCount = 0 ThenMsgBox("密码不对请重新输入~")Exit SubEnd IfmyReader1.Read() '阅读器重新使用read方法On Error GoTo ssIf myReader1(0) > 0 ThenfrmMagementMain.GBmagemetPeple.Visible = Truesqlstr1 = "select * from mgpep"If mycon1.State = 1 Thenmycon1.Close()End Ifmycon1.Open()myReader1 = mycom1.ExecuteReader '把这个命令的连接送入阅读器Dim userIDsys(myReader1.VisibleFieldCount - 1, 2)'ReDim userIDsys(10, 2)Dim k As Integer = 0While myReader1.ReadfrmMagementMain.CmbUser.Items.Add(myReader1(0)) For i = 0 To 2userIDsys(k, i) = myReader1.Item(i)Nextk = k + 1End WhileMsgBox("已经成功登录~")mycon1.Close()Me.Close()Exit SubElseMsgBox("您没有权限登录~")mycon1.Close()Me.Close()Exit SubEnd Ifss:MsgBox("您没有权限登录~")Me.Close()End SubPrivate Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Cancel_Button.ClickMe.Close()End SubEnd ClassPublic ADOcn As ConnectionPublic Sub main()Dim strSQLServer As StringstrSQLServer = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=图书销售管理系统;DataSource=longmingxue\SQLEXPRESS"Set ADOcn = New ConnectionADOcn.Open = strSQLServerFrmMain.ShowEnd SubPrivate Sub Command1_Click()Dim ADOrs As New RecordsetDim strSQL As StringDim strXB As StringADOrs.ActiveConnection = ADOcnADOrs.Open "select 学号 from 学生表"If Not ADOrs.EOF ThenMsgBox "该学号已经存在,不能继续添加~", vbCritical + vbOKOnly, "信息提示"ElseIf Option1.Value ThenstrXB = "男"ElsestrXB = "女"End IfstrSQL = "Insert Into 学生表( 学号,姓名,性别)"strSQL = strSQL + " Values('" + Text1 + "','"strSQL = strSQL + Text2 + "','" + strXB + "')"ADOcn.Execute strSQLMsgBox "添加成功~", vbOKOnly, "信息提示"End IfEnd Sub。
VBA中用户界面设计与交互的实现方式随着信息技术的迅猛发展,人们对软件和应用程序的用户界面设计和交互方式也越来越重视。
在使用VBA编写Excel宏时,用户界面设计和交互体验同样起着重要作用。
本文将介绍VBA中用户界面设计与交互的实现方式,并提供一些实用的技巧和示例。
1. 使用UserForm控件UserForm控件是VBA中设计用户界面的核心工具之一。
通过创建UserForm,我们可以自定义界面的布局、添加各种控件并设置其属性,实现丰富的用户交互功能。
以下是一些常用的UserForm控件:- Label控件:用于显示文本或标签。
- TextBox控件:用户可以在其中输入文本。
- ComboBox控件:提供选项列表供用户选择。
- CommandButton控件:用于触发操作。
- OptionButton和CheckBox控件:用于选择操作。
- ListBox控件:用于显示多个选项并允许用户选择一个或多个选项。
通过在UserForm中组合这些控件,可以创建出功能强大且直观的用户界面。
接下来,我们将展示一个示例,演示如何使用UserForm控件实现计算器功能。
```vba' 在VBA编辑器中插入一个UserForm' 在UserForm上添加Label控件和若干CommandButton 控件' 编写以下代码:' 定义变量存储操作数和运算符Dim num1 As DoubleDim num2 As DoubleDim operator As String' 操作数和运算符输入Private Sub CommandButton_Click()Dim btn As CommandButtonSet btn = Me.ActiveControlIf IsNumeric(btn.Caption) Thenbel.Caption = bel.Caption & btn.Caption ElseIf btn.Caption = "+" Or btn.Caption = "-" Or btn.Caption = "*" Or btn.Caption = "/" Thenoperator = btn.Captionnum1 = CDbl(bel.Caption)bel.Caption = ""ElseIf btn.Caption = "=" Thennum2 = CDbl(bel.Caption)Select Case operatorCase "+"bel.Caption = num1 + num2Case "-"bel.Caption = num1 - num2Case "*"bel.Caption = num1 * num2Case "/"bel.Caption = num1 / num2End SelectElseIf btn.Caption = "Clear" Thenbel.Caption = ""End IfEnd Sub' 结束用户界面Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)If CloseMode = vbFormControlMenu ThenCancel = TrueMe.HideEnd IfEnd Sub```在该示例中,我们使用UserForm和CommandButton控件创建了一个简单的计算器。