一個(gè)一個(gè)回答吧。
創(chuàng)新互聯(lián)公司專(zhuān)注于壽光網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供壽光營(yíng)銷(xiāo)型網(wǎng)站建設(shè),壽光網(wǎng)站制作、壽光網(wǎng)頁(yè)設(shè)計(jì)、壽光網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造壽光網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供壽光網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
1、CheckBox 的 MouseDown 事件發(fā)生在 CheckedChange 事件之前,但這是指在單步調(diào)試的狀態(tài)下,事實(shí)上在編譯好的程序中,這兩個(gè)事件是分別處在兩個(gè)不同的線程中,單純的考慮時(shí)間上的前后沒(méi)有意義。
2、MouseDown 在先。Scroll 事件發(fā)生在滾動(dòng)條移動(dòng)的過(guò)程中,而 ValueChange 事件發(fā)生在滾動(dòng)條的 Value 屬性發(fā)生改變的時(shí)候,兩者沒(méi)有必然聯(lián)系。舉例,當(dāng)你用鼠標(biāo)拖動(dòng)滾動(dòng)條移動(dòng)的時(shí)候,這時(shí)發(fā)生的是 Scroll 事件;松開(kāi)鼠標(biāo)鍵后,Value 屬性值改變,這時(shí)候觸發(fā) ValueChange 事件。另外,如果滾動(dòng)條的 Value 是通過(guò)代碼改變的而非鼠標(biāo)拖動(dòng)的,是不觸發(fā) Scroll 事件只觸發(fā) ValueChange 事件。
3、ClientSize 是指控件的工作區(qū)的高度和寬度。比如說(shuō) form,它的 Size 值是包括標(biāo)題欄、邊框等,而 ClientSize 是工作區(qū),不包括標(biāo)題欄、邊框等。
4、一般是 Load→Paint→Shown。
窗體上添加一個(gè)
Label1
Timer1
再添加2個(gè)窗體
代碼如下:
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類(lèi)型庫(kù): 從"工程"菜單中選擇"引用"欄;選擇Microsoft Excel 11.0 Object Library(EXCEL2003),然后選擇"確定"。表示在工程中要引用EXCEL類(lèi)型庫(kù)。
調(diào)用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" '打開(kāi)的工作簿路徑名稱
SheetName = "sheet1" '命令按鈕所在的工作表名
Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象
Set xlBook = xlApp.Workbooks.Open(FileName) '打開(kāi)已經(jīng)存在的EXCEL工件簿文件
……
xlBook.Close (True) '保存并關(guān)閉工作簿
xlApp.Quit '結(jié)束EXCEL對(duì)象
Set xlApp = Nothing '釋放xlApp對(duì)象
end sub
首先:
textbox里沒(méi)有顯示,是因?yàn)镾erialPort1和TextBox2不是同一線程創(chuàng)建的,需要跨線程操作。需要用到委托,這樣才能顯示出來(lái)。
其次:
我覺(jué)得用串口的接收數(shù)據(jù)事件更好一些。
下面代碼供參考:
'----------------------
'串口接收數(shù)據(jù)事件,其實(shí)比用定時(shí)器更好,
'觸發(fā)事件的條件可以自己在form_load中設(shè)置ReceivedBytesThreshold屬性數(shù)值,默認(rèn)為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) '顯示結(jié)果
Me.TextBox1.Text = "結(jié)果:" 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