十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一个一个回答吧。
创新互联公司专注于寿光网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供寿光营销型网站建设,寿光网站制作、寿光网页设计、寿光网站官网定制、微信小程序开发服务,打造寿光网络公司原创品牌,更为您提供寿光网站排名全网营销落地服务。
1、CheckBox 的 MouseDown 事件发生在 CheckedChange 事件之前,但这是指在单步调试的状态下,事实上在编译好的程序中,这两个事件是分别处在两个不同的线程中,单纯的考虑时间上的前后没有意义。
2、MouseDown 在先。Scroll 事件发生在滚动条移动的过程中,而 ValueChange 事件发生在滚动条的 Value 属性发生改变的时候,两者没有必然联系。举例,当你用鼠标拖动滚动条移动的时候,这时发生的是 Scroll 事件;松开鼠标键后,Value 属性值改变,这时候触发 ValueChange 事件。另外,如果滚动条的 Value 是通过代码改变的而非鼠标拖动的,是不触发 Scroll 事件只触发 ValueChange 事件。
3、ClientSize 是指控件的工作区的高度和宽度。比如说 form,它的 Size 值是包括标题栏、边框等,而 ClientSize 是工作区,不包括标题栏、边框等。
4、一般是 Load→Paint→Shown。
窗体上添加一个
Label1
Timer1
再添加2个窗体
代码如下:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Now
Select Case Hour(Now)
Case 10
Form2.Show()
Case 11
Form3.Show()
End Select
End Sub
End Class
一定要先在VB中添加excel引用。
在工程中引用Microsoft Excel类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 11.0 Object Library(EXCEL2003),然后选择"确定"。表示在工程中要引用EXCEL类型库。
调用excel的工作表中的命令按钮,代码如下:
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
Dim FileName, SheetName As String
FileName = "e:\data.xls" '打开的工作簿路径名称
SheetName = "sheet1" '命令按钮所在的工作表名
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(FileName) '打开已经存在的EXCEL工件簿文件
……
xlBook.Close (True) '保存并关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
end sub
首先:
textbox里没有显示,是因为SerialPort1和TextBox2不是同一线程创建的,需要跨线程操作。需要用到委托,这样才能显示出来。
其次:
我觉得用串口的接收数据事件更好一些。
下面代码供参考:
'----------------------
'串口接收数据事件,其实比用定时器更好,
'触发事件的条件可以自己在form_load中设置ReceivedBytesThreshold属性数值,默认为ReceivedBytesThreshold=1
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim strRecvData As String = ""
strRecvData = SerialPort1.ReadExisting
Call disPlayComData(strRecvData)
End Sub
Delegate Sub callback(ByVal strT As String) '定义委托
Sub showString(ByVal comdata As String) '显示结果
Me.TextBox1.Text = "结果:" comdata
End Sub
Sub disPlayComData(ByVal strTmp As String) '判定是否为跨线程
If Me.TextBox1.InvokeRequired Then
Dim d As New callback(AddressOf showString)
Me.Invoke(d, New Object() {strTmp})
Else
Me.TextBox1.Text = strTmp
End If
End Sub