控件使用

控件使用
控件使用

、控件mscomm32.ocx 的几个重要属性

CommPort:设置并返回通讯端口号。

Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口。

Input:从接收缓冲区返回和删除字符。

Output:向传输缓冲区写一个字符串。

InBufferCount:返回接收缓冲区中等待的字符数,该属性在设计时无效,可以把InBufferCount 属性设置为0 来清除接收缓冲区。

InBufferSize:设置并返回接收缓冲区的字节数,接收缓冲区的大小。Rthreshold:产生OnComm 事件之前要接收的字符数。设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件。设置为0(缺省值)则不产生OnComm 事件。

CommEvent:返回最近的通讯事件或错误。该属性在设计时无效,在运行时为只读。只要有通讯错误或事件发生时都会产生OnComm 事件,CommEvent 属性存有该错误或事件的数值代码。CommEvent 属性返回2 表示收到Rthreshold 个字符。该事件将持续产生直到用Input 属性从接收缓冲区中删除数据。

2、实例:

该事例演示如何控制COM口发送命令及如何接收数据。本事例采用轮讯方式。适用于通讯数据

不是很巨大的和要求不是很高速的情况下。

(1)在VFP中,建立一个新的表单

(2)插入文本(命名为TEXT1,用来显示读取的数据)

(3)建立Microsoft Communication Control1 控件在工具栏中点插入ole容器控件,选择Microsoft Communication Control 控件(NAMe为mscomm1)

(4)建立一个按纽命名为command1

(5)在CHICK属性里下如下代码:

**存储变量名字

buffer=""

** 使用COM1。

https://www.360docs.net/doc/24546652.html,mPort = 1

**9600 波特,无奇偶校验,8 位数据,一个停止位。

thisform.MSComm1.Settings = "9600,N,8,1"

* 告诉控件读入整个缓冲区。

thisform.MSComm1.InputLen = 0

* 打开端口。

thisform.MSComm1.PortOpen = True

**将attention 命令送到调制解调器。这是MODEM的状态读取命令

thisform.MSComm1.Output = "ATV1Q0" & Chr$(13)

** CHR(13)是回车符号,用来表示命令结束

**等待数据返回到串行端口。

vv=1

do while .t.

Buffer = thisform.MSComm1.Input

*从串行端口读"OK" 响应。

if at("OK",buffer)>=1

exit &&有OK则退出,否则继续读

endif

vv=vv+1

**通讯失败的错误陷阱,以免一直读。

if vv>1000

exit

endif

loop

enddo

*关闭串行端口。

thisform.MSComm1.PortOpen = False

**显示结果。

if vv>1000

massagebox("你是不是读错口啦?","不好意思哦!")

else

thisform.text1.value=buffer

endif

VB开发通讯软件

一、PC串行通信程序机制

常用的PC串行通信程序大多利用BIOSINT14H中断,以查询I/O方式完成异步串行通信。

Windows系统提供中断方式驱动的串行通信驱动程序COMM.DRV。通信程序无需直接对串行端口进行操作,而是通过驱动程序这一编程接口进行间接操作。

Windows操作系统中,串行通信采用“事件通知”方式,支持数据按块传送。进行通信时,Windows开辟一个用户定义的输入输出缓冲区,每接收一个字符就产生一个低级硬件中断,串行驱动程序立即取得控制权,并将字符放入输入数据缓冲区,然后将控制权返还正在运行的应用程序。如果输入数据缓冲区满了,驱动程序用当前定义的流控制机制通知发送方停止发送数据。发送数据也采用类似的处理方式,应用程序将需要发送的数据放入输出数据缓冲区,串口每发送一个字符就产生一个低级硬件中断。

二、PC串行口远程通信的硬件配置

串行通信数据链中,计算机一端称为DTE,即数据终端设备;调制解调器一端称为DCE,即数据通信设备。PC串行通信的硬件连接方式分为零Modem连接和Modem连接。

零Modem连接即直接用调制解调器电缆将两台设备连接起来,Modem连接则通过DCE(Modem)

将两台PC连接起来。

零Modem连接用于距离15m内两台DTE或DCE设备之间的连接。而Modem连接则通过电话网

或专线用于长距离的通信。

TXD和RXD信号线用于计算机和Modem间传输数据信息;RTS从计算机端发送信号到Modem,表示希望把数据传给Modem,若Modem能接收这个数据,它将发送CTS信号给计算机;DTR 从计算机端发送信号到Modem,表示计算机已作好通信准备,Modem将DTR信号作为初始化自己的信号,然后给计算机回送数据设置就绪信号DSR;当本地Modem接收到远地Modem的呼叫,则发送RING信号给计算机;Modem应答呼叫后,发送数据载波检测DCD信号到计算

机,表示已建立连接。

Modem的工作状态分为命令状态和在线状态。处于命令状态时,Modem对串口发送的信息进行解释,可通过PC串口向Modem发送AT命令对其进行初始化、设置和操作。

例如,初始化命令为:“ATQOV1WOSOΚ1&C1&D2&YO&WO”,其含义为:

QO:返回结果码;

V1:以字符形式显示结果码;

WO:不返回协商进程结果码;

SOΚ1:振铃一次,即应答;

&C1:追踪数据载波信号CD;

&D2当DTR从开到关时,Modem挂机进入命令状态;

&YO:Modem上电时重新调出用户方案;

&WO:将以上设置存为动态设置用户方案0;

一旦本地Modem与远地Modem建立连接,Modem即处于在线状态,可进行数据传输。此时,

Modem不响应AT命令,直接传送所收到的数据。

三、Modem连接远程通信软件的编制

通信过程中大部分的工作由串行通信驱动软件承担。

本文软件的运行环境为AST+4/66d,Hayes公司的ACCURA144+FAX144Modem,Windows3.2,VB3.0专业版。VB3.0专业版中提供了一个MSCOMM.VBX通信控件。它使用户能很方便地通过对控件属性的设置、检测,访问串行通信驱动程序的大多数特性,而不必考虑其实现细节。该控件为“事件驱动”,只响应“OnComm”事件,该事件可对已发生的事件或错误进行

处理,与CommEvent属性紧密相关。

通信软件、通信驱动软件和Modem之间的通信关系

以下程序实现了通信的基本过程。包括初始化串口和Modem,上位机拨号呼叫下位机,下位机应答并开始定时传输数据,挂机停止传输等功能。

VB3.0编制的通信软件清单如下:

上位机控件清单:

控件名称属性

Form1Form1Caption ″上位机通信″

MsComm comm1

CommandButton1CallCaption ″拨号″

CommandButton2hangCaption ″挂机″

CommandButton3ExitCaption ″退出″

下位机控件清单

控件名称属性

Form1Form1Caption ″下位机通信″

MsComm comm1

CommandButton1h angCaption ″挂机″

CommandButton2ExitCaption ″退出″

Timer1Timer1Interval 3000

Text(i)Text(i)

1.串口初始化、设置程序

在程序初始化时,先对串口初始化。因为使用RTS/CTS握手信号的硬件设备只有RTS信号置为高才能接收数据,所以需将MSCOMM通信控件的RTSenable属性设为TRUE。由于Modem 在处于命令状态时,通过串口发送的命令以及命令结果均会回显在输入缓冲区中,因此在进入在线状态前,禁止产生EV-RECEIVE事件,避免数据误处理。

由于Windows是多任务系统,在进行数据收发循环处理时,应调用DOEVENTS事件,将控制权交还系统,允许Windows执行其他任务。但应注意,在处理OnComm事件时小心使用DOEVENTS,避免系统又产生OnComm事件,造成嵌套,出现堆栈溢出错误。

Sub Form-Load()

comm1.CommportΚ1′COM1口通信

comm1.SettingsΚ″9600,N,8,1″′波特率9600,无校验,8位数据位1位停止位

comm1.OutBufferSizeΚOUTPACK′设置输出缓冲区大小

comm1.InBufferSizeΚINPACK′设置输入缓冲区大小

comm1.InputLenΚ1′每次从输入缓冲区中取一个字符

comm1.RTSenableΚ-1′RTS信号为高

comm1.RthresholdΚ0′不产生MSCOMM-EV-RECEIVE事件

comm1.PortOpenΚ-1′打开串口

cdΚcomm1.CDHolding′取载波检测信号线原始状态comm1.outputΚ″AT QOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem Do DoEventsLoopUntilcomm1.OutBufferCountΚ0

End Sub

2.上位机拨号呼叫下位机

SubCallcom-Click()

Comm1.OutPutΚ″ATDT″&Phonnum$&chr$(13)′向Modem发拨号命令Do DoEventsLoopUntilcomm1.OutBufferCountΚ0

End Sub

3.下位机Modem应答,连通后开始定时传输数据

下位机检测CD,判断是否连通:

Sub Comm1-OnComm()

Select Casecomm1.CommEvent

Case5 ′MSCOMM-EV-CD

Timer1.EnabledΚ-1′启动定时器

End Select

End Sub

VB传送定长字符串,数据接收处理相对简单。但在发送实时数据时,若将数据转换成定长字符串,这样会大大降低传输效率。在接收端,通知程序从输入缓冲区中取字符有两种方法:一是用轮询方法循环判断InBufferCount是否为0;另外就是利用Rthreshold属性触发“OnComm”事件及“CommEvent”属性中EV-RECEIVE事件。当Rthreshold的值不为0时,允许产生EV-RECEIVE事件。该属性设置和返回在通信控件设定CommEvent特性为接收和产生OnComm事件之前要接收的字符数。VB传送变长字符串时,接收端的Rthreshold值要作

相应的改变,以确保接收数据及时准确。

下位机定时发送字符串“strin3$ΚFormat$(Len(strin1$),″0000″)&chr$(8)&strin2$”。strin1$为当前字符串,strin2$为上一字符串。上位机根据接收strin3$中Len(strin1$),相应改变RthresholdΚLen(strin1$)+4。这样,通过提前发送字符串长度,改变Rthreshold值可实现发送变长数据。

Windows串行通信驱动程序的事件驱动特性仍有不稳定的缺陷。如InputLenΚ0时,有可能取出不完整的数据。为保证可靠,采取降低处理速率的方法,保证下位机发送的数据流完整地进入输入缓冲区。设InputLenΚ1,即每次从缓冲区中取一个字符。也可采用轮询方法,

定时检测输入缓冲区。下位机定时发送数据:

Sub Timer1-Timer()

If comm1.CDHoldingΙΛcdThen

str1$-text1(i).Text

strin2$Κstrin1$′上一字符串

strin1$Κstr1$′当前字符串

strin3$ΚFormat$(Len(strin1$),″0000″)&chr$(8)&strin2$

′传送当前字符串长度,以及上一字符串内容

com m1.OutPutΚstrin3$

Do DoEventsLoopUntilcomm1.OutBufferCountΚ0

Else

Timer1.EnabledΚ0

End If

End Sub

上位机检测CD状态,判断是否连通、并接收处理数据。

Sub Comm1-OnComm()

Select Case comm1.CommEvent

Case5 ′MSCOMM-EV-CD检测CD状态,判断是否连通

comm1.InBufferCountΚ0′清输入缓冲区

comm1.RThresholdΚ4′当输入缓冲区中有五个字符,

Case2′MSCOMM-EV-RECEIVE产生EV-RECEIVE事件,接收处理数据

Do DoEvents

Ifcomm1.InBufferCountThen′循环从缓冲区中取数据

str1$Κstr1$+comm1.Input

Else

Exit Do

End If

Loop

len2Κ1en1′当前字符串长度

len1ΚVa1(Left$(str1$,5))′即将发送的字符串长度

comm1.RThresholdΚlen1+4

strin$ΚRight$(str1$,len2)′数据处理

……

End Select

str1$Κ″″

End Sub

4.根据设置的AT命令“&D2”,当置DTR信号为低时,Modem挂机进入命令状态。也可通过串口输出““+++ATH”+chr$(13)”字符串挂机。

Sub Hang-click()

If comm1.CDHoldingΙΛcdThen′检测CD,判断是否挂机

comm1.DTRenableΚ0

comm1.DTRenableΚ-1′置DTR信号为高,为下一次通信准备

End If

End Sub

5.退出程序时,一定要关闭串口

Sub Exitcomm ()

comm1.PortOpen Κfalse

End End Sub

四、Windows 通信机制和VB3.0通信控件潜在缺陷

在通信软件编制过程中,我们发现Windows 下通信机制采用的“事件驱动”在实际运行中不稳定。如在文件传输过程中,误码和数据丢失的情况时有发生;若串口波特率过高,会产生无法通信或在通信过程中随机挂机的情况。这主要是由于Windows 本身通信机制和通信线路介质及质量的影响。为保证数据传输稳定可靠,可采用通信协议如XModem -CRC 或YModem 。在MSCOMM .VBX 通信控件中,Rthreshold 属性值大小与输入缓冲区InBufferSize 大小有关,当Rthreshold 值较接近InBufferSize 值时,有可能不产生EV -RECEIVE 事件,为保证产生

该事件,可将InBufferSize 值取得较大!

用VB6.0开发通信软件的技巧 出处:网络

随着计算机应用领域的不断扩展,计算机之间的远程通信用得越来越广泛.进行计算机

通信需要调制解调器(modem),电话线及通信软件.尽管市面上有许多商品通信软件,但是在许方情况下商品通信软件并不能满足实际工作的需要.这是因为通用的通信软件虽然能发送和接收文件,但有些时侯是不适用的.例如我们在开发一个EDI(电子数据交换)应用系统时,就需要把接收到的某个单证直接地自动地放到一个数据库中,作为一条记录。这种情况下采用通用的通信软件就不行了,需要开发自己专用的通信软件。

过去,开发通信软件对于一般的应用软件开发人员来说是比较困难的。而现在这件事已经变得容易多了。本文介绍如何利用VB5.0和MSCOMM 控件开发通信软件。

要想自己开发通信软件,除了要掌握VB5.0的基本编程语言以外,还需知道一些微机通信的基本原理。如有关串行端口及调制解调器的基本知识,调制解调器的使用手册及AT 命令集等。这在许多书中都可以找到。本文不再叙述。

二有关预备知识

在PC机串行端口与调制解调器进行连接时,有十几根线进行信号传输。对于用MSCOMM控件编制通信软件来说,只需了解以下五根线的代号及作用。以下五根线的高电平/低电平状态分别对应MScomm 控件的相应属性的True/False值。

(1)DTR线:PC发往MODEM,表示PC机是否已准备好。

(2)RTS线:PC发往MODEM,表示PC机是否允许modem发回数据.

(3)DSR线:MODEM发往PC,表示MODEM是否已做好操作准备

(4)CTS线:MODEM发往PC,表示MODEM是否允许发送数据

(5)CD线:MODEM发往PC,表示MOEDM已经与呼叫的远方MODEM处于连结状态

三MSCOMM控件的属性及事件

VB5.0所带的通信控件MSCOMM易学易用。它只有约30个属性和事件。可以从VB5.0的联机帮助中找到它的全部资料。本文简述它的主要属性及事件,并加已归类整理。以下用MSCOMM1表示在窗体上设置的一个MSCOMM控件的名称

(一)通信参数设置

(1)CommPort属性

语法:https://www.360docs.net/doc/24546652.html,mPort[=Value]

作用:设置或返回联接MODEM的串口的编号。

值:用1,2,...表示串口COM1,COM2....

(2)Settings属性

语法:MSCOMM1.Settings[=Value]

作用:设置或返回通信参数。

值:String型。例入用"19200,N,8,1"表示传输速率为19200bps,没有奇偶校验位,8位数据位,1位停止位。

(3)Handshaking属性

语法:MSCOMM1.Handshaking[=Value]

作用与值:设置或返回硬件握手协议。指的是PC机MODEM之间为了控制流速而约定的内部协议。

0 没有握手协议。不考虑流量控制。

1 XON/XOFF。即在数据流中嵌如控制苻来进行流控。

2 RTS/CTS。既由信号线RTS/CTS自动进行流量控制。

3 两者皆可。

注:实践中我们发现选用2(即RTS/CTS)是很方便的。

(二)打开/关闭端口

(4)PortOpen属性

语法:MSCOMM1.PortOpen[=Value]

作用:打开或关闭端口。

值:Boolean型。设为True/False可以打开/关闭端口。

(三)发送数据

(5)OutBufferSize属性

语法:MSCOMM1.OutBufferSize[=Value]

作用:设置或返回传输缓冲区大小。

值:Integer型。传输缓冲区的字节数。例如可选1024。

(6)OutPut属性

语法:MSCOMM1.OutPut[=Variant]

作用:向传输缓冲区写数据流。

值:Variant型变量。

注:传输文本数据时,应将String型数据放入Variant变量,传输二进制数据(即按字节)时Byte型数组数据放入Variant变量

(四)接收数据

(7)InBufferSize属性

语法:MSCOMM1.InBufferSize[=Value]

作用:设置或返回接收缓冲区大小。

值:Integer型。接收缓冲区的字节数。例如可选1024。

(8)InputMode属性

语法:MSCOMM1.InputMode[=Value]

作用:设置或返回接收数据的数据类型。

值:0用Input属性接收文本型数据。

1用Input属性接收二进制数据。

(9)InBufferCount属性

语法:MSCOMM1.InBufferCount[=Value]

作用:返回接收缓冲区中已传到但还未取走的字符个数。

值:Integer型。

(10)Input属性

语法:MSCOMM1.Input[=Variant]

作用:将接收缓冲区中收到的数据读入变量。

值:Variant型变量。

注:当InputMode属性值为0(文本模式)时,变量中含String型数镜盜nputMode属性值为1(二进制模式)时,变量中含Byte型数组数据。

(五)状态控制

(11)DTREnabled属性

(12)RTSEnabled属性

(13)DSRHolding属性

(14)CTSHolding属性

(15)CDHolding属性

以上五个属性即如二所述,均取值TRUE/FALSE,用于读取或控制pc机与modem之间的交互状态。需运用好。例在读取到DSRHolding属性值为TRUE时再向MODEM发出命令。应当在载波检测到以后(CDHoldi ng属性为TRUE)时再向MODEM发送数据。

(六)事件

MSCOMM控件把实际上是十七个事件归并为一个事件OnComm,用属性CommEvent的十七个值来区分不同的触发时机。主要有以下几个:

(1)CommEvent=1时:传输缓冲区中的字符个数已少于Sthreshold(可设置的属性值)个.

(2)CommEvent=2时:接收缓冲区中收到hreshold(可设置的属性值)个个字符.利用此事件可编写接收数据的过程。

(3)CommEvent=3时:CTS线发生变化.

(4)CommEvent=4时:DSR线发生变化.

(5)CommEvent=5时:CD线发生变化.

(6)CommEvent=6时:检测到振铃信号.

另外十个情况是可能发生的各种通信错误时触发。可参看有关资料.

四通信软件参数设置

在自己编写的通信软件中,应包含进行通信参数设置的功能。主要就是可以设置端口号,波特率,数据位,停止位,奇偶校验位及设置硬件握手协议。

可在一个窗体上用下拉列表框,选择钮等由用户来选择。《保存》时,利用VB5.0的Settings函数将这些参数存储在WINDOWS95的系统注册表中。每次运行该软件时,先用GetSettings函数调出这些参数,并对Commport,Settings,Handshaking等属性赋值,来进行通信参数设置。

五打开通信端口

在编写的通信软件的主窗体上,可以安排一个打开/关闭端口的菜单项或图形按钮。在打开端口时,可向M ODEM发出命令,进行MODEM参数设置。可以象下面这样来编程:

(1)打开/关闭端口

MSComm1.PORTOPEN=NotMSComm1.PORTOPEN

(2)向MODEM发出DTR(已准备好)信号

OpenFlag=MSComm1.PORTOPEN

If OpenFlag Then

MSComm1.DTREnable=True

Else

MSComm1.DTREnable=False

End If

(3)打开时向MODEM发出一些命令来设置参数

S0=n(n>=1)自动应答.n为响铃次数

E0/E1关闭/打开命令字符回应

Q0/Q1modem返回/不返回结果码

M0/M1关闭/打开MODEM扬声器.

If OpenFlag Then

L1:

If MSComm1.CTSHolding Then

Outstring="ATS0=1E1Q0M0"+Chr(13)

MSComm1.Output=Outstring

GoTo LL

Else

GoTo L1

End If

End If

LL:...

也可以安排一些可变换颜色的指示灯来代表端口打开状态,CD线状态等,这样更形象生动。六拨号

进行拨号需向MODEM发出ATDT命令。可用如下语句:

cc="ATDT"+Trim(Text1.Text)+Chr(13)

MSComm1.Output=cc

其中TEXT1是窗体上让用户输入电话号的文本框。

为了使程序功能更强一些,可以增加<电话号码簿管理>,可以增加,修改,删除,查询电话号码。这与一般的数据库应用程序是一样的。

七发送文件

拨号以后,程序要循环等待并随时判定是否接通。如果MODEM向PC的回应字符串中含有"Connect"或C DHolding属性值变为True(检测出载波),则表示已与远方MODEM连机了。这时就可以发送文件了。

发送文件开始以前,可打开一个显示发送信息的窗口。可在此窗口上显示要发送的文件名,总长度,已发送长度等信息。

设置以下全局变量,存放标志字符串,在发送及接收程序中均使用。

S_FILENAME="FILENAME"+Chr(5)+Chr(13)+Chr(10)

S_FILELEN="FILELEN"+Chr(5)+Chr(13)+Chr(10)

S_FILESTAR="FILESTAR"+Chr(5)+Chr(13)+Chr(10)

VB控制COM口短信收发

短信终端操作的关键是短信的编码和解码,英文资料很多,中文的基本找不到,你可以多查些资料。

Option Explicit On

Public Class Jwc

'_______________声明mscomm控件__________________

Public MSComm1 As New MSCommLib.MSComm

'__________________串口调试_____________________

Dim bug As String

Public B_bug As Boolean = False

'__________________串口设置_____________________

Public L_com(256) As String

Public I_P As Integer = 1 '端口号Public S_Set As String = "9600,n,8,1" '初始字符串Public C_open As Boolean = False

Public ret_l As Double

'__________________短信共用变量_________________ Dim l_msg_c As Integer = 0

Dim l_msg_i As Integer = 0

Dim l_msg_t As Integer = 0

Dim l_msg_x As Integer = 16

'__________________读取短信_____________________ Public ID1 As String '短信编号

Public ID2 As String '短信分类

Public n1 As Integer '短信中心号码长度

Public n2 As Integer '被叫号码长度

Public n3 As Integer '用户数据长度

Public n4 As Integer '日期长度

Public np1 As String '短信中心号码

Public np2 As String '被叫号码

Public da1 As String '日期

Public sp1 As String '用户数据

Public Cont As Integer '短信个数

Public scod As String '编码方式

Dim ms(1000, 10)

'_______________发送短信________________________ Public s_mg As String

Public m_succ As Boolean '短信发送状态

Public cs1 As String = "0891"

Public cs2 As String = "11000D91"

Public cs3 As String = "000800"

Public Lms As Integer

'_______________接收短信________________________ Public mg_count As Integer = 0

Public mg_ade(1000) As Integer

Public mg_N As Boolean = False

'_______________读取联系人______________________ Dim Pbook(1000, 2) As String

Public bookcont As Integer

'_______________打开设备________________________

Public Function PhoOpen() As Boolean

Dim i As Integer

Dim j As Integer

Dim n As Integer

Dim coms(256) As Integer

PhoOpen = False

If C_open Then

PhoOpen = True

Exit Function

End If

For i = 0 To 255

L_com(i) = ""

Next

j = 0

For i = 1 To 64

If CheckCom(i) Then

L_com(j) = i

'MsgBox(j & " " & i)

j = j + 1

End If

Next i

'触发OnComm事件的字符长度

For i = 0 To j - 1

n = L_com(i)

'MsgBox(i & " " & n)

I_P = n '记录当前端口号

If CheckModem(n) Then

'MsgBox("连接成功!")

PhoOpen = True

C_open = True

PhoLoading()

Exit For

End If

Next i

End Function

'_______________发送AT指令______________________

Public Function ATcode(ByVal s As String) As String

If Not C_open Then

Call PhoOpen()

If Not C_open Then

'MsgBox("未发现设备!", vbInformation)

A Tcode = "未发现设备!"

Exit Function

End If

End If

ATcode = ""

MSComm1.Output = s

Dim i As Integer

Dim t As String

Dim Sall As String = ""

For i = 0 To 1000

System.Threading.Thread.Sleep(10)

t = MSComm1.Input

While Len(t) > 0

Sall = Sall & t

t = ""

i = 0

End While

If ATend(Sall) Then

Exit For

End If

If i >= 1000 Then

Me.C_open = False

PhoClose()

End If

Next

ret_l = Len(Sall)

'If ret_l = 0 Then

' Sall = "连接超时!"

'End If

CheckNewMsg(Sall)

ATcode = Sall

End Function

Public Function ATend(ByVal s As String) As Boolean Dim i As Integer

Dim t As String = ""

Dim Sall As String = ""

For i = 1 To Len(s)

t = Mid(s, i, 1)

If t <> Chr(13) And t <> Chr(10) And t <> Chr(32) Then

Sall = Sall + t

End If

Next

ATend = False

m_succ = False

If Right(Sall, 1) = ">" Then

ATend = True

m_succ = True

Exit Function

End If

If Right(Sall, 2) = "OK" Then

ATend = True

m_succ = True

Exit Function

End If

If Right(Sall, 5) = "ERROR" Then

ATend = True

Exit Function

End If

If Right(Sall, 7) = "CARRIER" Then

ATend = True

Exit Function

End If

End Function

'_______________读取短信________________________

Function Getmsg(ByVal i As Integer, ByVal j As Integer) As String

Getmsg = ""

Try

Getmsg = ms(i, j)

Catch ex As Exception

End Try

End Function

'_____________发送短信_________________________

Function SMG(ByVal n1 As String, ByVal n2 As String, ByVal s1 As String) As Bo olean

VisualStudio_各个控件详解

.NET控件详解 (2011-07-20 22:44:33) 转载 标签:it分类:C#语言 微软的.net控件详解,没有那个比这个更权威的了网址: https://www.360docs.net/doc/24546652.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview.aspx 参考资料:https://www.360docs.net/doc/24546652.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview.aspx 网易学院:https://www.360docs.net/doc/24546652.html,/special/000915SN/stvs2005.html 参考资料:https://www.360docs.net/doc/24546652.html,/tianine5/blog/item/1470aa35f46bad8aa61e1285.html .NET控件命名规范

按功能列出的推荐控件和组件:(windows程序用的控件和组件) 数据显示: DataGridView控件 DataGridView控件提供用来显示数据的可自定义表。使用DataGridView类,可以自定义单元格、行、列和边框。 注意DataGridView控件提供DataGrid控件所不具备的许多基本和高级功能。有关更多信息数据绑定和定位: BindingSource组件 通过提供当前项管理、更改通知和其他服务,来简化将窗体上的控件绑定到数据的过程。

文本编辑: BindingNavigator控件 提供工具栏式的界面来定位和操作窗体上的数据。 TextBox控件 显示设计时输入的文本,它可由用户在运行时编辑或以编程方式更改。 RichTextBox控件 使文本能够以纯文本或RTF 格式显示。 MaskedTextBox控件约束用户输入的格式信息显示(只读): Label 控件显示用户无法直接编辑的文本。 LinkLabel控件 将文本显示为Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接。 StatusStrip控件 通常在父窗体的底部使用有框架的区域显示有关应用程序的当前状态的信息。ProgressBar控件向用户显示操作的当前进度。 网页显示: WebBrowser控件使用户可以在窗体内导航网页。

各种控件的详细使用介绍

各种控件的详细使用介绍:常用属性,常用事件,常用的方法 控件的分类(控件根据所属的基类,进行划分) 根据是否能容纳其他控件,可以分为: 容器类控件(包括:表单集,表单,表格,表格列,页框,页面,命令按钮组,选项按钮组,工具栏,容器控件) 非容器类控件(包括:标签,文本框,编辑框,命令按钮,复选框,列表框,组合框,微调框,形状,计时器,线条,图像) 另外一种划分方法,是根据控件和数据环境中数据源的关系进行划分,控件分为:绑定型控件是指内容可以和与数据环境后端的表、视图或查询中的字段和内存变量相关联的控件。在该控件中输入、修改或选择的值将保存在数据源中,而数据源中值的改变,也将改变控件的值。(复选框,文本框,编辑框,列表框,组合框,表格,选项按钮组,微调框,activex控件) 非绑定型控件是指其内容不与后端的表、视图和查询中的字段或内容相关联的控件。(命令按钮,命令按钮组,线条,标签,计时器,形状,图像) 一、标签控件(Label)——非容器类控件,非数据绑定控件 用以显示文本,显示提示信息。标签上的显示文本由caption属性指定。 其中的文本在表单运行时不能被用户直接修改。 常用属性: 常用事件:mousemove 鼠标移动事件mousedown 鼠标按下左键事件 Click 单击事件mouseup 释放鼠标左键事件

【范例】参考实验作业HomeWork7-1-1.scx。 二、文本框与编辑框——非容器类控件,数据绑定控件 文本框——用以显示或编辑表中的非备注型字段的数据。 编辑框——用途与文本框相似,用以显示或编辑长字段或备注型字段的数据。 两者均为数据绑定控件,非容器类控件 文本框的常用属性: ?ControlSource 指定与文本框绑定的数据源 ?Value 指定文本框的当前选定的值 例如:value=0 表示文本框中的数据设置为数值型,不能输入字母或汉字?PasswordChar 用设定的字符来显示用户输入的值,而实际输入保存在value属性中。 例如:PasswordChar=*或者其他的符号。文本框中显示为*或其他符号

使用窗体控件

第2章使用窗体控件 课堂练习:为控件创建事件处理程序 5)传递给这个事件处理程序的第二个参数(e)的目的是什么? 答:参数e包含事件数据。它是一个EventArgs 对象(实际不包含事件数据的基类),或者是一个派生类(像MouseEventArgs)的实例。要查看派生类的完整列表,请在Visual Studio .NET帮助文档中使用短语“EventArgs 类”进行查找,然后点击链接转到“派生类”。 ●为Click 事件创建一个事件处理程序。 3)上面的双击动作为什么创建了一个Click 事件处理程序? 答:当在设计视图中双击一个控件时,IDE会自动为默认事件创建一个事件处理程序。课堂练习:创建和使用ToolBar控件 8)为什么不能向ToolBar 按钮添加图像呢? 答:ToolBar 控件将ImageList 控件作为图像源。使用ToolBar 控件的ImageList 属性指定Toolbar 将从哪个ImageList 控件获取图像。 13)运行应用程序。单击工具栏按钮时有事情发生吗?必须处理什么事件以响应单击ToolBar按钮? 答:ToolBar 的ButtonClick事件用来处理ToolBar按钮的单击。ToolBarButtonClickEventArgs 用来确定单击了哪个按钮。 课堂练习:在运行时添加和移除控件 ●添加新控件 6)为什么decimalCheckBox 出现在GroupBox1控件的左上角? 答:控件位置属性的默认坐标X和Y的值均为零。 课堂练习:在运行时更新菜单 ●使用另一个MainMenu 9)什么时候能在一个应用程序中使用多个MainMenu 控件? 答:在应用程序的上下文改变或者应用程序有多种状态时,使用(显示)多个MainMenu 对象会很有帮助。 ●将一个ContextMenu 分配给一个控件。 5)如何找出哪个控件与ContextMenu 有关联? 答:ContextMenu.SourceControl 属性获取显示快捷方式菜单的控件。 ●找出与ContextMenu关联的控件

(完整版)MSFlexGrid控件属性及使用方法整理

MSFlexGrid控件属性及使用方法整理 ================================================= MSFlexGrid总行数和总列数的定义: MSFlexGrid1.Rows = 5 '规定表格的总行数为5行 MSFlexGrid1.Cols = 2 '规定表格的总列数为2行 MSFlexGrid某一单元格的文本内容 MSFlexGrid1.TextMatrix(3, 0) ="网站地址" '定义第3行的左边表头文本内容为:“网站地址”MSFlexGrid1.TextMatrix(3, 2) ="https://www.360docs.net/doc/24546652.html, " 定义第3行第2列的文本内容为:“https://www.360docs.net/doc/24546652.html,” 右键选中MSFlexGrid的 Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = vbRightButton Then MSFlexGrid1.Row = y / MSFlexGrid1.RowHeight(0) - 0.5 MSFlexGrid1.RowSel = MSFlexGrid1.Row '右键选种当前行---备用u3u3: 'MSFlexGrid1.Col = 0 'MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1 '右键选种当前单元格---备用u3u3: 'MSFlexGrid1.Col = x / MSFlexGrid1.ColWidth(0) - 0.5 'MSFlexGrid1.Col = MSFlexGrid1.Col 'Text1.Text = MSFlexGrid1.Text End If End Sub

实验名称MFC基本控件的使用

1、实验名称:MFC基本控件的使用 2、实验目的:掌握编辑框类及其方法,熟练掌握利用编辑框类开发基于MFC的应用 程序的方法。 3、实验内容:使用MFC AppWizard创建如图一所示的基于对话窗的应用程序,实现算 术加、减、乘和除运算。 图一 4、程序实现方法: (1)使用AppWizard建立应用程序框架 ①在进入Visual C++ 6.0的第一个界面下,选择MFC AppWizard(exe),在Project name 文本输入框中输入新建的项目名称“计数器”,并设置其所在位置,单击OK按钮,如图二所示。 图二Visual C++ 6.0的第一个界面 ②在MFC AppWizard的第一步中选择基本对话,如图三所示,其余的都采用默认选项。

图三MFC AppWizard的第一步界面 这样就建立了一个基于对话框的程序,如图四所示。 图四基于对话框的界面 (2)利用资源编辑器建立对话框 在图四的Resource View选项卡中打开Dialog资源组,本程序的工程文件名为计数器,因此,系统自动产生一个名为IDD_MY_DIALOG的资源文件,双击IDD_ MY_DIALOG,在右边的窗口中显示出待编辑的对话框。根据如图一所示的样式,利用Visual C++ 6.0的控键(Controls)建立对话框。 下面以“数据1”编辑框和“+”按钮为例介绍控件的创建过程,其他编辑框和按钮的创建可参照此操作: ①在图四中Controls的“编辑框”按钮上单击鼠标左键、在如图一所示的对话框编辑窗口上的“数据1”编辑框的位置上,按下鼠标左键,并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择Properties选项,此时弹出Edit Properties 属性设置对话框,如图五所示,在该对话框中输入ID属性。

实验三 高级UI控件的使用

实验三高级UI控件的使用 姓名:杨赟班级:电信1302班学号:0121309340121 一、实验目的 学会高级UI控件的使用:菜单,对话框,提示通知,时间控件,列表和进度二、主要仪器设备及套数 计算机 三、实验内容 1.菜单 Options menu介绍 Options menu 是一个Activity中的菜单选项的主要组成部分,它是作用在全局的app中的,比如说 "Search","Compose email","Settings." 在Android 2.3 版本以下或者更低版本中,用户可以通过点击菜单按钮来弹出菜单选项面板 在Android 3.0 高级别的版本中,这种选项菜单已经被 Action Bar 这种直接在屏幕中操作选项或者弹出选项的组件所替代了。从Android 3.0 开始,菜单按钮是不赞成使用了(很多设备已经没有了菜单的按钮) ,所以你应该转移到 ActionBar 提供给用户操作其它选项的动作。 详情参考:Creating an Options Menu 2) Options menu 定义方式 创建 Options menu 这个菜单有两种使用方式,一种是在代码中直接创建,主要是使用add()方法的方式,查看Menu API 文档中的add()方法 public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title) groudId:是指组ID,用以批量地对菜单子项进行处 理和排序 itemId:是子项ID,是每一个菜单子项的唯一标识 order:指定菜单子项在选项菜单中的排列顺序 titler:菜单标题 另外一种是在 XML 中定义一个菜单,引用代码如下 3) 触发事件 触发点击事件,当用户选择从菜单选项中选择一项的时候(包括 ActionBar中的action items) ,系统会调用你Activity的onOptionsItemSelected()方法,这个方法会

控件使用

、控件mscomm32.ocx 的几个重要属性 CommPort:设置并返回通讯端口号。 Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口。 Input:从接收缓冲区返回和删除字符。 Output:向传输缓冲区写一个字符串。 InBufferCount:返回接收缓冲区中等待的字符数,该属性在设计时无效,可以把InBufferCount 属性设置为0 来清除接收缓冲区。 InBufferSize:设置并返回接收缓冲区的字节数,接收缓冲区的大小。Rthreshold:产生OnComm 事件之前要接收的字符数。设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件。设置为0(缺省值)则不产生OnComm 事件。 CommEvent:返回最近的通讯事件或错误。该属性在设计时无效,在运行时为只读。只要有通讯错误或事件发生时都会产生OnComm 事件,CommEvent 属性存有该错误或事件的数值代码。CommEvent 属性返回2 表示收到Rthreshold 个字符。该事件将持续产生直到用Input 属性从接收缓冲区中删除数据。 2、实例: 该事例演示如何控制COM口发送命令及如何接收数据。本事例采用轮讯方式。适用于通讯数据 不是很巨大的和要求不是很高速的情况下。 (1)在VFP中,建立一个新的表单 (2)插入文本(命名为TEXT1,用来显示读取的数据) (3)建立Microsoft Communication Control1 控件在工具栏中点插入ole容器控件,选择Microsoft Communication Control 控件(NAMe为mscomm1) (4)建立一个按纽命名为command1 (5)在CHICK属性里下如下代码: **存储变量名字 buffer="" ** 使用COM1。 https://www.360docs.net/doc/24546652.html,mPort = 1 **9600 波特,无奇偶校验,8 位数据,一个停止位。 thisform.MSComm1.Settings = "9600,N,8,1" * 告诉控件读入整个缓冲区。 thisform.MSComm1.InputLen = 0 * 打开端口。 thisform.MSComm1.PortOpen = True **将attention 命令送到调制解调器。这是MODEM的状态读取命令 thisform.MSComm1.Output = "ATV1Q0" & Chr$(13) ** CHR(13)是回车符号,用来表示命令结束 **等待数据返回到串行端口。 vv=1 do while .t. Buffer = thisform.MSComm1.Input *从串行端口读"OK" 响应。

VB6.0基本控件的属性

VB基本控件的属性,方法经及事件 VB基本控件的属性,方法经及事件 VB基本控件的属性,方法经及事件 所有控件都具有的属性: 1、Name: 表示在代码中用来标识一个控件的名字。 2、Enabled: 表示一个控件是否可以响应一个事件,即该控件可不可用。 值为true: 可以响应;值为false: 不可以看见。 3、Visible: 表示一个控件是否可见。值为true:可以看见;值为false: 不可以看见。所有控件都有具有的事件: 1、KeyDown : 当用户按下键盘上一个键时发生的。 2、KeyUp : 在用户松开键盘上按下的键时发生的。 3、KeyPress : 在Key Down和Key Up事件之间发生。 4、MouseDown : 在鼠标被按下时触发的。 5、MouseUp :在用户松开鼠标键时发生的。 6、Click :在用户单击鼠标左键时发生的。 7、DblClick :在用户双击鼠标时发生的。 一、窗体(Form) 属性: 1、Caption: 表示窗体标题栏的文字。 2、BorderStyle: 一般情况下为默认值,若更改为下列值: 1)值为0:没有窗体标题栏 2)值为1:窗体运行之后不能改变大小 3、WindowState: 设置窗体的大小。 3)值为0:窗体正常大小 4)值为1:窗体最小化 值为2:窗体最大化 4、BackColor: 表示窗体的背景颜色 事件: 1、Initialize(初始化事件): 在窗体加载和显示之前触发,这个事件只触一次。 2、Load(加载事件): 用来完成窗体显示之前需要完成的动作。 3、Activate/Deactivate (激活/非激活事件):是用户在同一个应用程序的两个或多个窗体之间移动时触发的。 4、QueryUnload(条件卸载事件): 决定窗体是如何关闭的。 触发QueryUnload事件时Unload 的参数和因素有: 1)VbFormControlMenu值为0 :选中窗体控件菜单中的Close命令。 2)VbFormCode值为1 :从代码中调用Unload 语句。 3)VbAppWindows值为2 :终止当前的Windows操作系统。 4)VbFormMDIForm值为4 :因为终止MDI父窗体而导致MDI子窗体的终止。 5、Terminate(终止事件):在窗体的所有实例从内存中清除时发生,只触发一次。方法: 1、Load:加载窗体,但不在屏幕上显示 2、Unload:卸载窗体,既从屏幕上也从内存中清除窗体。 3、Show:加载窗体并在屏幕上显示窗体。Show分为:

KVDBGrid控件使用方法

KVDBGrid控件使用方法 KVDBGrid控件是一个组态王提供的用于通过ODBC接口访问数据库的Active X控件。通过该控件,用户可以方便的访问到数据库,进行数据查询,还可将查询结果打印出来。 一、控件功能: 1.显示数据库一个表中的数据,可进行显示字段选择,查询条件限制(目前暂不支持多个表数据的查询)。 2.开发状态可设置显示表头。 3.运行状态可编辑表格中数据。但不更新数据库。 4.运行状态可动态设置过滤条件,刷新显示。 5.可打印表格中显示的数据,可进行横向和纵向分页。 二、使用说明: 1.在画面中插入控件:组态王画面菜单中编辑\插入通用控件,或在工具箱中单击“插入通用控件”按钮,在弹出的对话框中选择KVDBGrid Class,单击确定。 2.按下鼠标左键,并拖动,在画面上绘制出表格区域。 3.设置动画连接:双击控件或选择右键菜单中动画连接,在弹出的属性页中设置控件名称等信息(控件动画连接属性的具体设置请参见《组态王6.0使用手册》中控件一章)。 4.设置控件属性:选择控件右键菜单中“控件属性”。弹出控件固有属性页,可分别设置如下属性:(1)、数据源: 单击“浏览”按钮可选择或新建ODBC数据源。 选择数据源后“表名称”组合框中就自动填充了可选的表名称,可弹出下拉列表选择要显示的数据所在的表名称。 选择表名称后,“有效字段”中自动填充表中的所有字段,可通过“添加”、“删除”,“上

移”,“下移”按钮来选择要显示的字段和显示顺序。 单击显示的字段,可在右侧设置字段显示的标题、格式、对齐等属性。 最后在“查询条件”中设置限制条件(ODBC SQL语法)。如查询“日期”2001年9月1日的“原料罐液位”大于10的所有数据,则在该文本框中输入: 原料罐液位>10 and 日期=’2001/9/1’ (2)、表格属性: 可设置表格的一般属性。 说明:如固定行数大于1,则第一行显示选择字段的标题,其它固定行不自动填充,要由 使用者在设计状态编辑其显示内容。 (3)、颜色: 可设置表格颜色,背景颜色,文本颜色等信息。 (4)、字体:

实验7 Windows窗体控件高级应用

实验六Windows窗体控件高级应用 一、实验目的: 理解 Windows 窗体 使用基本控件如标签、文本、按钮、列表框和组合框 掌握窗体的常用属性和方法 使用WinForms中的高级控件 了解 MDI 应用程序和 SDI 应用程序 了解菜单和掌握菜单控件的使用 掌握 ImageList 控件 掌握 ToolBar 控件和 StatusBar 控件 掌握Timer 控件 掌握 TreeView 控件 掌握 ListView 控件 二、实验要求 1. 整理上机步骤,总结经验和体会。 2. 完成实验日志和上交程序。 三、实验内容 ?建立个人简历的Windows应用程序。 ?使用菜单、工具栏来改变窗口的大小与颜色。 四、实训步骤: Windows窗体是Visual Studio .NET提供的集成开发环境(IDE),可用于Windows应用程序开发。它带有可用于创建GUI(Graphical User Interface,图形用户界面)的所有现成界面组件。 1:创建Windows窗体个人简历应用程序 问题 请编写一个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度,通过文本区域填写其他个人信息;通过文件对话框选择照片并显示;通过两个下拉列表框来关联选择籍贯。 指导教师分析解题思路 该问题需要开发一个窗体,要求对用户的简历信息进行登记。该应用程序主要用到按钮、文本输入框、图片显示框、下拉列表框和列表框等控件。 分析 主要通过对窗体和各控件相应的事件处理函数进行编程,包括窗体的Load、下拉框的SelectedIndexChanged、按钮的Click事件。 表5.1 窗体的控件属性

MFC控件使用详细教程

使用Windows标准控件 我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。在Visual C++中,可以使用的控件分成三类: (1) Windows标准控件 Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。 表6.1 Windows标准控件

续表6.1 前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。Windows标准控件在以下环境下提供: ?Windows 95 ?Windows NT 3.51及以后版本 ?Win32s 1.3 ?注意: ?Visual C++ 4.2及以后版本不再支持Win32s。 (2) ActiveX控件

ActiveX控件可用于对话框中,也可用于HTML文档中。这种控件过去被称为OLE 控件。本书将在专门的章节中来讲述关于ActiveX控件的知识。这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。 (3) 其它MFC控件类 除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装: ?类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。 ?类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。 ?类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。 在本章我们仅讲述第一类控件,即Windows标准控件。所涉及的内容包括各个控件的使用及相应的技巧。 第一节使用对话框编辑器和ClassWizard 对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它们添加到对话框中。 图6. 1 在ResourceView中选择对话框 IDD_DIALOGDEMO_DIALOG

坐席控件开发接口使用说明最新

呼叫中心坐席端控件(EasyAgc.ocx)使用说 明 为什么需要坐席端控件 在一个完整的呼叫中心系统中,坐席端软件是一个重要的组成部分。坐席人员通过坐席端软件与呼叫中心服务器(CCS)进行交互,完成对通讯设备的控制和相关信息的交换,如坐席的登录、注销、离席、复席、应答、呼出、转移等等动作,都是通过坐席端软件与CCS的通信完成的。一般来说,坐席端软件与CCS之间的通信是建立在TCP/IP的基础上的。具体的通信包格式可以自行定义。为了降低坐席端软件的开发难度和加快坐席端软件的开发速度,通行的做法是把坐席端软件分成通信模块与业务模块两部分。其中业务模块会随客户的需求变化而变化,一般都需要进行定制开发;而通信部分则相对变化较少,不论什么行业的呼叫中心,其坐席端软件一般都需要包括坐席的登录,注销,呼出,应答,挂断,转移等基本通信功能。因此有必要把坐席软件的通信模块进行封装,以OCX控件的方式提供给最终用户,最终用户不需要了解坐席端与CCS之间的通信包格式,也不必学习Socket通信的开发技术,只需访问OCX控件公布的方法和属性,对OCX控件公布的事件进行响应,就可以完成坐席端软件通信模块的开发。 坐席端控件支持的开发语言 北京同力信通软件公司坐席端控件符合Windows控件标准,理论上支持所有可以支持控件的开发语言,成功通过北京同力信通软件公司公司测试的语言包括: Delphi 7.0 Visula Basic 6.0 Visual C++ 6.0 IE6.0-VBScript/Jscript 坐席端控件的接口 方法 tlaOpen tlaClose tlaLogin tlaLogoff tlaACW tlaWCA

常用基本控件测试用例

目录 树控件的测试错误!未指定书签。 下拉框(列表框)测试用例设计错误!未指定书签。 文本框为字符型错误!未指定书签。 日期控件文本框的测试错误!未指定书签。 命令按钮控件的测试错误!未指定书签。 单选按钮控件的测试错误!未指定书签。 翻页控件的测试错误!未指定书签。 上传控件的测试错误!未指定书签。 up-down控件文本框的测试错误!未指定书签。 复选框的测试错误!未指定书签。 滚动条控件的测试错误!未指定书签。 各种控件在窗体中混和使用时的测试错误!未指定书签。 查找替换操作错误!未指定书签。 插入操作错误!未指定书签。 编辑操作错误!未指定书签。 界面测试用例的设计方法错误!未指定书签。 菜单错误!未指定书签。 特殊属性错误!未指定书签。 其他错误!未指定书签。 树控件的测试外观操作返回目录 1)项目中的所有树是否风格一致 2)树结构的默认状态是怎样的。比如默认树是否是展开,是展开几级?是否有默认的焦点?默认值是什么?展开的节点图标和颜色? 3)验证点开节点时页面上树结构的连线是否显示正确。 4)如果显示节点超过页面边界是否有规定。 5)节点和叶子显示的文字规定多长要折行。 6)节点和叶子显示的文字不能有乱码。(输入中文,特殊字符) 2、执行操作 1)点某个节点时,是否只展开下一级的节点和显示该级的叶子还是显示下一级全部的。 2)点页面刷新时,树结构是否按照要求变化,树结构是否保存现状还是程默认状态。 3、数据操作 1)树结构上数据是否正确。 2)树结构上的节点和叶子是否排序正确。(升序还是降序)。 3)树结构排序是按照数据库中得记录顺序排序还是按照程序数组得顺序。 4)执行了某一操作或数据有变化后,树结构是否回到默认状态,还是按现任状态保持展开。5)执行了某一操作或数据有变化后,修改后得数据是不是在正确得位置上,状态是否正确,排序是否正确。

ppt的高级使用方法

制作幻灯片的高级使用 1如何在幻灯片中插入动画 2如何在幻灯片中插入声音 3如何在幻灯片中插入视频 一、在PowerPoint中插入flash影片的方法 法一:利用控件插入法 1.调出工具箱。操作步骤:启动powerpoint,从主菜单中选择—视图—工具栏—控件工具箱。如图1 2.在控件工具箱中选择“其他控件”,这时会列出电脑中安装的Active X控件,找到Shockwave Flash Object控件。如图2。 3.这时,鼠标变成“+”,在幻灯片中需要插入flash动画的地方画出一个框。如图3。 4.在框中点击鼠标右键,点击属性,如图4,然后出现Shockwave Flash Object属性设置栏,如图5。 5.左键双击“自定义”,在弹出的对话框中,在影片URL(M)后的输入栏中,填上要插入的swf档案的路径和文件名,当然,直接读取网上的swf文件也是可以的。如图6。 注意:在填写影片URL时需填写上文件的后缀名.swf。另外选中“嵌入影片”,即将flash 动画包含到ppt文件中,复制ppt的同时不需复制动画文件,当将该ppt复制或移动到其他计算机使用时仍能正常显示flash。若未选“嵌入影片”,则需将动画文件和ppt文件同时复制,并且修改影片URL路径,否则在动画位置上将会出现白框,动画显示不正常。笔者建议选择“嵌入影片”。若计算机上未安装flash播放器也能正常运行。 保存浏览即可。 优点:1)无需安装flash播放器; 2)在图6所示对话框中选中“嵌入影片”,则可将动画文件和ppt文件合为一体,复制时不需单独复制动画文件,也不需再做路径修改。 缺点:操作相对复杂。 法二:利用对象插入法 1、启动PowerPoint后创建一新演示文稿; 2、在需要插入Flash动画的那一页单击菜单栏上的“插入——对象”,如图7。出现插入对象对话框,单击“由文件创建——浏览”,选择需要插入的Flash动画文件,然后确定,如图8; 3、在刚插入Flash动画的图标上,单击鼠标右键打开快捷菜单,选择“动作设置”,如图9,出现动作设置对话框,选择“单击鼠标”或“鼠标移过”都可以,在“对象动作”项选择“激活内容”,单击确定,如图10。

组态王视频控件使用方法

组态王视频控件使用方法 第一步建立一个组态王工程; 第二步建立一个新画面; 第三步添加视频控件’具体步骤如下: 1插入通用控件video control 图1 Ifi人控件 图2 2、单击确定后鼠标变成“ +”状,按住鼠标左键,拉出一个矩形框,松开即可;

图3第三步添加按钮; 图4 第四步设置视频控件动画连接属性,完成后点击“确定”按钮,然后在开发系统界面的文件下拉菜单下选择全部存;

图5 第五步编辑按钮动画连接属性; 1、双击“打开视频”按钮,弹出下图对话框,单击“按下时”; 图6

弹出图XXX对话框选择“控件属性和方法”按钮,弹出(图8)对话框; 图7

选择“ Open Video ”单击确定弹出(图10)对话框了; 授伸名珊 |确定 両毎习 ZJ 取消 查若类型 1揑件方法 2d 屈性戒方进 Kb outB ox CapVll^ToAVI ^LoselTideo G E tl'evKum Zip enAVI 图8 KeadFort

图10 “LONG nReslnde”代表设备号,右键“我的电脑—管理—设备管理器一图像处理设备”双击你安装的视频设备就可以查看你的视频设备号。 关闭视频:视频练习.CIoseVideo(); 拍照:视频练习.SaveVideoFrame(LPCTSTR IpszPicName)" LPCTSTR IpszPicNam” 照片的保存地址和名称; 回放:视频练习.OpenAVI(LPCTSTR lpszFileName) “LPCTSTR lpszFileNam e要回 放的视频保存位置及名称; 摄像:视频练习.CapVideoToAVI(LPCTSTR IpszAVIName)'LPCTSTR lpszAVINam”表示录制的视频将保存的位置及视频文件名称; 抓拍:视频练习.SaveVideoFrameToRect(LPCTSTRlpszPicName) ;“ LPCTSTR IpszPicName”表示抓拍的图片即将保存的BMP文件的位置和名称; 设置视频源:视频练习.VideoSource();设置视频的来源,即选择视频设备; 停止摄像:视频练习.StopCapVideo();

KVHTrend控件使用方法

KVHTrend控件使用方法 KVHTrend曲线控件是组态王以Active X控件形式提供的绘制历史曲线和ODBC数据库曲线的功能性工具。通过该控件,不但可以实现历史曲线的绘制,还可以实现ODBC数据库中数据记录的曲线绘制,而且在运行状态下,可以实现在线动态增加/删除曲线、曲线图表的无级缩放、曲线的动态比较、.曲线的打印等。该曲线控件最多可以绘制16条曲线。 1、创建历史曲线控件: 在组态王开发系统中新建画面,在工具箱中单击“插入通用控件”或选择菜单“编辑” 下的“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线”,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选择控件的左上角,按下鼠标左键并拖动,画面上显示出一个虚线的矩形框,该矩形框为创建后的曲线的外框。当达到所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,如图1所示。 图1 历史曲线控件 2、设置控件固有属性: 控件创建完成后,在控件上单击右键,在弹出的快捷菜单中选择“控件属性”命令,弹出历史曲线控件的固有属性对话框,如图2所示。

控件固有属性含有两个属性页:曲线、坐标系。下面详细介绍每个属性页中的含义。 2、1 曲线属性页 如图2所示,曲线属性页中下半部分为定义在绘制曲线时,历史数据的来源,可以选择组态王的历史数据库或其它数据库为数据源。 曲线属性页中上半部分“曲线”是定义曲线图表初始状态的曲线变量、绘制曲线的方式、是否进行曲线比较等: ?列表框:显示已经添加的变量的名称及绘制方式定义等。 ?“增加”按钮:增加变量到曲线图表,并定义曲线绘制方式。 单击该按钮,弹出如图3所示的对话框。 图2 历史曲线控件固有属性

OA常用控件的用法

OA工作流的表单设计器中最常用控件的用法 如果想要设计制作精确、合理的OA工作流程,最基本的条件是设计出最合适的工作表单,而表单的制作最关键的是熟练掌握各个控件的使用方法。 下面就以最常用的几个控件跟大家分享一下它们在工作表单的制作过程中的用法。

控件类型及其用 第一,单行输入框。 单行输入框是最简单的空间,就是为表单添加一个可以输入内容的空,一般是用来填写比较简短的内容,比如:名字、手机号等。 ?如上图所示设置了单行输入框的属性后,就会在表单中出现下图所示的样式。 ?第二,多行输入框。 性质跟单行输入框类似,这个控件的内容也是完全由填写表单的用户手填。但多行输入框一般是用在输入内容较长的地方,比如一个较长的地址。

?如下图所示就是一个设置好的多行输入框在表单中显示的样式。 ?第三,下拉菜单。 这个很好理解,下拉菜单包含所有可能的选项。然后填写表单的用户可以通过下拉菜单选择需要的选项。

?第四,单选框。 单选框的含义我们都知道,就是设置多于一个的选项,而用户填写表单的时候只能从中选择一个选项。 ?比如下图所示的一个同意或不同意,只能选择其中一个选项。

?第五,多选框。 多选框的功能其实是只在表单中画一个可以打勾的小框,多选框有多少选项,就设置多少个多选框,然后在每个多选框后面自定义选项内容。 ?如下图所示就是一个多选框的样式,其中,火车、汽车、飞机和轮船这四个选项是在表单中定义的。 ?第六,列表控件。 这个列表控件其实是不经常用到的。起作用是相同格式记录的动态输入,可以根据实际需要灵活新增行数录入相应数据。 使用这个控件,是可以设置好列表头。列表控件支持多种输入类型,包括单行输入框、多行输入框、下来菜单、单选框、复选框和日期,满足多方面的需求; 而且支持自动计算和合计,使用通用运算符+、-、*、/、%等,可以实现列表项目的自动计算输入。其中列表计算项目是不可人工输入的。 如果用户在设计表单的时候确实用到了这个控件,可以设置上一两行试一下,看完表单效果后就知道该如何设置。

新控件XtraReport使用

软件工程研究所 新控件报表使用方法版本号:13.2.6 制作人:艾传波 2014/11/23

目录 一、提前准备 (2) 二、连接数据库 (3) 三、拖入数据集 (5) 四、报表控件使用 (6) 4.1设置属性实现报表 (6) 4.2通过动态编码实现报表 (17)

一、提前准备 以学生管理系统为例,数据库脚本如下: create table S ( SNO VARCHAR2(3), SNAME VARCHAR2(10), SEX VARCHAR2(10), ADDRESS VARCHAR2(50), MAJOR VARCHAR2(50) ); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('1', '赵一','男','湖北大学三期公寓3037','计算机科学与技术'); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('2', '钱二','男','湖北大学三期公寓1000','计算机科学与技术'); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('3', '孙三','男','湖北大学三期公寓6890','计算机科学与技术'); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('4', '李四','女','湖北大学三期公寓1234','软件工程'); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('5', '王五','女','湖北大学三期公寓357','软件工程'); insert into S (SNO, SNAME,SEX,ADDRESS,MAJOR) values ('6', '张六','女','湖北大学三期公寓7688','软件工程'); create table C ( CNO VARCHAR2(3), CNAME VARCHAR2(30), CTEACHER VARCHAR2(10) ); insert into C (CNO, CNAME, CTEACHER) values ('1', '语文', '语文老师'); insert into C (CNO, CNAME, CTEACHER) values ('2', '数学', '数学老师'); insert into C (CNO, CNAME, CTEACHER) values ('3', '英语', '英语老师'); insert into C (CNO, CNAME, CTEACHER) values ('4', '历史', '历史老师'); insert into C (CNO, CNAME, CTEACHER) values ('5', '地理', '地理老师'); insert into C (CNO, CNAME, CTEACHER) values ('6', '生物', '生物老师'); create table SC ( SNO VARCHAR2(3),

vb中常用控件及其功能

4.1 标签 标签是VB中最简单的控件,用于显示字符串,通常显示的是文字说明信息。但不能编辑标签控件。 使用标签的情况很多,通常用标签来标注本身不具有Caption属性的控件。例如,可用标签为文本框、列表框、组合框等控件来添加描述性的标签。还可编写代码改变标签控件的显示文本以响应运行时的事件。例如,若应用程序需要用几分钟处理某个操作,则可用标签显示处理情况的信息。 4.1.1 常用属性 标签的属性很多,下面介绍几个常用的属性。 (1)Alignment属性 设置标签中文本的对齐方式。其使用语法如下: Object.Alignment[=值] 其中的“值”可以为0,1或2。0(默认值)表示左对齐;1表示右对齐;2表示居中。 (2)AutoSize属性 设置控件是否能够自动调整大小以显示所有的内容。其使用语法如下: Object.AutoSize[=True或False] (3)BackStyle属性 设置标签的背景样式。其使用语法如下: Object.BackStyle[=值] 其中的“值”可以为0或1。1(默认值)表示是不透明的;0表示是透明的。 (4)BorderStyle属性 设置标签的边框样式。其使用语法如下: Object.BorderStyle[=值] 其中的“值”可以为0或1。0(默认值)表示无边框;1表示单线边框。 (5)Caption属性 设置标签的文本内容。其使用语法如下: Object.Caption[=字符串] (6)WordWrap属性 设置标签的文本在显示时是否自动折行功能。其使用语法如下: Object.WordWrap[=True或False] 其中True表示具有自动折行功能;False(默认值)表示没有自动折行功能。 4.1.2 常用事件和方法 一般很少使用标签事件,标签的方法中常用的只有Move,其基本语法如下: Move left,top,width,height 其中left,top,width,height分别表示移动目的位置的坐标和大小。left为必要参数,其他

datagridview控件使用方法

DataGridView动态添加新行: DataGridView控件在实际应用中非常实用,特别需要表格显示数据时。可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = "1"; this.dataGridView1.Rows[index].Cells[1].Value = "2"; this.dataGridView1.Rows[index].Cells[2].Value = "监听"; 利用dataGridView1.Rows.Add()事件为DataGridView控件增加新的行,该函数返回添加新行的索引号,即新行的行号,然后可以通过该索引号操作该行的各个单元格,如 dataGridView1.Rows[index].Cells[0].Value = "1"。这是很常用也是很简单的方法。 方法二: DataGridViewRow row = new DataGridViewRow(); DataGridViewTextBoxCell textboxcell = new DataGridViewTextBoxCell(); textboxcell.Value = "aaa"; row.Cells.Add(textboxcell); DataGridViewComboBoxCell comboxcell = new DataGridViewComboBoxCell(); row.Cells.Add(comboxcell); dataGridView1.Rows.Add(row); 方法二比方法一要复杂一些,但是在一些特殊场合非常实用,例如,要在新行中的某些单元格添加下拉框、按钮之类的控件时,该方法很有帮助。DataGridViewRow row = new DataGridViewRow();是创建DataGridView的行对象,DataGridViewTextBoxCell是单元格的内容是个TextBox,DataGridViewComboBoxCell是单元格的内容是下拉列表框,同理可知,DataGridViewButtonCell 是单元格的内容是个按钮,等等。textboxcell是新创建的单元格的对象,可以为该对象添加其属性。然后通过row.Cells.Add(textboxcell)为row对象添加textboxcell单元格。要添加其他的单元格,用同样的方法即可。最后通过dataGridView1.Rows.Add(row)为dataGridView1控件添加新的行row。 DataGridView取得或者修改当前单元格的内容: 当前单元格指的是DataGridView 焦点所在的单元格,它可以通过DataGridView 对象的CurrentCell 属性取得。如果当前单元格不存在的时候,返回Nothing(C#是null) // 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value);

相关文档
最新文档