分類: 電腦/網絡 程序設計 其他編程語言

成都創新互聯公司專注于玄武企業網站建設,響應式網站,商城網站制作。玄武網站建設公司,為玄武等地區提供建站服務。全流程按需定制制作,專業設計,全程項目跟蹤,成都創新互聯公司專業和態度為您提供的服務
問題描述:
我用的是Timer計時器:
如何將程序控制住,讓它第一次發現沒保存后,只擊活一次提示保存,然后使用修改后的保存路徑:(代碼如下)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'如何將程序控制住,讓它第一次發現沒保存后,只擊活一次提示保存,然后使用修改后的保存路徑
If SaveFileDialog1.FileName = "" Then
If SaveFileDialog1.ShowDialog Then
rtbox.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
End If
Else
'如果已經選擇了要保存的文件名,則保存文本到文件中
rtbox.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)
End If
End Sub
————————————————————
此代碼執行后變成死循環。
解析:
經過我的潛心修煉問題終于是解決了.請看代碼
Imports System.IO
Private strFileName As String = "myRTFdoc.txt"
Private flgFirst As Boolean = True
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
'如何將程序控制住,讓它第一次發現沒保存后,只擊活一次提示保存,然后使用修改后的保存路徑
Call zc()
End Sub
Private Sub zc()
'Timer2.Stop()
With SaveFileDialog1
.DefaultExt = "txt"
.FileName = strFileName
.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*"
.FilterIndex = 1
.InitialDirectory = "c:\"
.OverwritePrompt = True
.Title = "Save Reminding"
End With
'Timer2.Enabled = False
If flgFirst = True Then
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
strFileName = SaveFileDialog1.FileName
Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)
objWriter.Write(rtbox.Text)
objWriter.Close()
objWriter = Nothing
End If
flgFirst = False
'Timer2.Enabled = True
' Timer2.Start()
Else
'flg= second
Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)
objWriter.Write(rtbox.Text)
objWriter.Close()
objWriter = Nothing
End If
'Timer2.Enabled = True
'Timer2.Start()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer2.Enabled = True
' zc()
End Sub
知道問題在哪里嘛?我調試了確實是"死循環"、其實不是真正的死循環、是time tick事件你設定的時間太短了.估計只設置了1-5s左右.那么程序運行還需要時間.所以他就不停地調用timetick時間.你的savedialog對話框根本來不急彈出來.
所以建議你把timer的interval的值設置高點最好12-15秒 觸發一次.
當然我想還有其他的方法、還沒有徹底取研究下.
比如stop 什么 、那還需要時間.
至少目前我的方法是可以了.
我設置的12s P4. 3.0 1G 內存 跑下我的程序如果 F10(F8)慢點的話就來不及了.
另為把你的程序小改了下、應該可以滿足你的要求了.
VB6.0
寫入:
Open "D:\123.txt" For Output As #1 '打開XXX路徑的XXX文件(雙引號里表示文件位置和文件名)
Print #1, Text1.Text '寫入Text1的Text內容
Close #1 '關閉
讀取:
Open "D:\123.txt" For Input As #1 '打開打開XXX路徑的XXX文件(雙引號里表示文件位置和文件名)
Do While Not EOF(1)
Line Input #1, s
Text1.Text = s
Loop 'Do...Loop表示循環讀取文件的內容,并讓Text1.Text=內容
Close #1 '關閉
VB點虐 中讀寫文件主要使用System.IO命名空間。
① 使用?File.ReadAllText 讀取
Dim s As String = System.IO.File.ReadAllText("C:\a.txt")
② 使用 StreamReader 讀取,注意編碼格式和寫入的編碼保持一致。
Dim sr As StreamReader = New StreamReader("C:\a.txt", System.Text.Encoding.UTF8)
Dim s As String = sr.ReadToEnd()
sr.Close()
#Region "二進制文件的存儲函數" Public Function BinaryToFile(ByRef TableRowColItem As Object, ByVal FileName As String) As Boolean Dim data As Byte() = TableRowColItem
Dim myfilestream As New System.IO.FileStream(FileName, IO.FileMode.Create)
myfilestream.Write(data, 0, data.Length)
myfilestream.Close()
Return True
End Function Public Function BinaryToImage(ByRef TableRowColItem As Object, ByRef image As Image) As Boolean Dim data As Byte() = TableRowColItem Dim imgStream As New System.IO.MemoryStream '(data)
imgStream.Write(data, 0, data.Length)
image = System.Drawing.Image.FromStream(imgStream)
imgStream.Close()
imgStream.Dispose() Return True
End Function
Public Function BinaryFromFile(ByVal FileName As String, ByRef TableRowColItem As Object) As Boolean Using myfilestream As New FileStream(FileName, FileMode.Open, FileAccess.Read)
Dim data() As Byte
ReDim data(myfilestream.Length - 1)
myfilestream.Read(data, 0, myfilestream.Length)
myfilestream.Close()
TableRowColItem = data End Using
Return True
End Function Public Function BinaryFromImage(ByRef Image As Image, ByRef TableRowColItem As Object) As Boolean
Dim imgStream As New MemoryStream
Dim b As New Bitmap(Image) b.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg) Dim data As Byte() = imgStream.GetBuffer
TableRowColItem = data
data = TableRowColItem
imgStream.Close()
imgStream.Dispose() Return True
End Function Public Function BinaryFromImage(ByVal Image As Image, ByRef TableRowColItem As Object, ByVal imgFormat As System.Drawing.Imaging.ImageFormat) As Boolean
Dim imgStream As New MemoryStream
'Image.Save(imgStream, imgFormat)
'Dim b As New Bitmap(Image)
'b.Save("c:\a.bmp", imgFormat)
'b.Save("c:\a.bmp", imgFormat) Dim data As Byte() = imgStream.GetBuffer TableRowColItem = data
data = TableRowColItem
imgStream.Close()
Return True
End Function
#End Region
分類: 電腦/網絡 程序設計 其他編程語言
問題描述:
一個 vb 程序中,想在程序關閉的時候保存一些變量,在下次打開的時候可以繼續使用,請問應該怎么做?vb 中是否有現成的和函數可用?
解析:
有,使用app.config或自定義xml文件或讀寫注冊表或用數據庫,看MSDN
網站標題:vb點虐
中如何保存 vbnet keydown
網頁網址:http://www.yijiale78.com/article42/ddgcdec.html
成都網站建設公司_創新互聯,為您提供定制網站、品牌網站建設、用戶體驗、網站內鏈、做網站、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯