重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
分類: 電腦/網絡 程序設計 其他編程語言
成都創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、成都網站設計、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的榕江網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
問題描述:
我用的是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)慢點的話就來不及了.
另為把你的程序小改了下、應該可以滿足你的要求了.
Dim sFileName As String
Dim Search
Private Sub dateTimeMenu_Click()
Text1.Text = Now
End Sub
Private Sub deleteMenu_Click()
Text1.Text = Left(Text1.Text, Text1.SelStart) + Mid(Text1.Text, Text1.SelStart + Text1.SelLength + 1)
End Sub
Private Sub findMenu_Click()
Search = InputBox("請輸入要查找的字詞:")
Dim Where1 '獲取需要查找的字符串變量
Text1.SetFocus '文本框獲得焦點,以顯示所找到的內容Search = InputBox("請輸入要查找的字詞:")
Where1 = InStr(Text1.Text, Search) '在文本中查找字符串
If Where1 Then
'若找到則設置選定的起始位置并使找到的字符串高亮
Text1.SelStart = Where1 - 1
Text1.SelLength = Len(Search)
' Me.Caption = Where1 '測試用
'否則給出提示
Else: MsgBox "未找到所要查找的字符串。", vbInformation, "提示"
End If
End Sub
Private Sub findNextMenu_Click()
Dim Where2
Dim StartMe As Integer '查找的起始位置變量
Text1.SetFocus '文本框獲得焦點
StartMe = Text1.SelLength + Text1.SelStart + 1 '給變量賦值
Where2 = InStr(StartMe, Text1.Text, Search) '令其從上次找到的地方找起
If Where2 Then
Text1.SelStart = Where2 - 1
Text1.SelLength = Len(Search)
Else: MsgBox "未找到所要查找的字符串.", vbInformation, "提示"
End If
End Sub
Private Sub aboutMenu_Click()
MsgBox Space(2) "文本編輯器版本號1.0" Chr(13) "由西南財經大學天府學院" Chr(13) Space(5) "肖忠 開發" Chr(13) Space(2) "copyright:天府學院"
End Sub
Private Sub allMenu_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
Private Sub backcolorMenu_Click() '設置背景色代碼
Form1.CommonDialog1.Action = 3
Text1.BackColor = Form1.CommonDialog1.Color
End Sub
Private Sub colorMenu_Click() '改變文字顏色代碼
Form1.CommonDialog1.Action = 3
Text1.ForeColor = Form1.CommonDialog1.Color
End Sub
Private Sub cutMenu_Click()
Clipboard.SetText Text1.SelText
Text1.Text = Left(Text1.Text, Text1.SelStart) + Mid(Text1.Text, Text1.SelStart + Text1.SelLength + 1)
End Sub
Private Sub exitMenu_Click()
End
End Sub
Private Sub fontMenu_Click() '字體菜單代碼
Form1.CommonDialog1.Flags = 3 Or 256
Form1.CommonDialog1.Action = 4
If Len(Form1.CommonDialog1.FontName) = 0 Then
Form1.Text1.FontName = "宋體"
Else
Form1.Text1.FontName = Form1.CommonDialog1.FontName
End If
Form1.Text1.FontSize = Form1.CommonDialog1.FontSize
If Form1.CommonDialog1.FontBold = True Then
Form1.Text1.FontBold = True
Else
Form1.Text1.FontBold = False
End If
If Form1.CommonDialog1.FontItalic = True Then
Form1.Text1.FontItalic = True
Else
Form1.Text1.FontItalic = False
End If
Text1.ForeColor = Form1.CommonDialog1.Color
End Sub
Private Sub Form_Load()
Form1.Text1.Width = Form1.Width - 130
Form1.Text1.Height = Form1.Height
End Sub
Private Sub Form_Resize()
Form1.Text1.Width = Form1.Width - 130
Form1.Text1.Height = Form1.Height
End Sub
Private Sub help1Menu_Click()
Form1.CommonDialog1.HelpCommand = cdlHelpForceFile
Form1.CommonDialog1.HelpFile = "c:\windows\system32\winhelp.hlp"
CommonDialog1.ShowHelp
End Sub
Private Sub newMenu_Click()
If Len(Trim(Text1.Text)) = 0 Then
Form1.Caption = "我的記事本" "--" "未命名"
sFileName = "未命名"
Text1.FontSize = 15
Text1.FontName = "宋體"
Text1.Text = ""
Else
Call saveAsMenu_Click
Form1.Caption = "我的記事本" "--" "未命名"
sFileName = "未命名"
Text1.FontSize = 15
Text1.FontName = "宋體"
Text1.Text = ""
End If
End Sub
Private Sub openMenu_Click() '打開文件代碼
If Len(Trim(Text1.Text)) = 0 Then
Form1.Caption = "我的記事本"
Form1.CommonDialog1.Filter = "文本文件|*.txt"
Form1.CommonDialog1.Flags = 4096
Form1.CommonDialog1.Action = 1
If Len(Form1.CommonDialog1.FileName) 0 Then
sFileName = Form1.CommonDialog1.FileName
Form1.Caption = Form1.Caption "--" Form1.CommonDialog1.FileTitle
Open sFileName For Input As #1
Text1.FontSize = 15
Text1.FontName = "宋體"
Do While Not EOF(1)
Line Input #1, Text$
All$ = All$ + Text$ + Chr(13) + Chr(10)
Loop
Text1.Text = All
Close #1
End If
Else
Call saveAsMenu_Click
Form1.Caption = "我的記事本"
Form1.CommonDialog1.Filter = "文本文件|*.txt"
Form1.CommonDialog1.Flags = 4096
Form1.CommonDialog1.Action = 1
If Len(Form1.CommonDialog1.FileName) 0 Then
sFileName = Form1.CommonDialog1.FileName
Form1.Caption = Form1.Caption "--" Form1.CommonDialog1.FileTitle
Open sFileName For Input As #1
Text1.FontSize = 15
Text1.FontName = "宋體"
Do While Not EOF(1)
Line Input #1, Text$
All$ = All$ + Text$ + Chr(13) + Chr(10)
Loop
Text1.Text = All
Close #1
End If
End If
End Sub
Private Sub pasteMenu_Click() '粘貼菜單代碼
Text1.Text = Left(Text1.Text, Text1.SelStart) + Clipboard.GetText() + Mid(Text1.Text, Text1.SelStart + Text1.SelLength + 1)
End Sub
Private Sub printMenu_Click()
Form1.CommonDialog1.ShowPrinter
For i = 1 To CommonDialog1.Copies
Printer.Print Text1.Text
Printer.Print Text1.Text
Next
Printer.EndDoc
End Sub
Private Sub saveAsMenu_Click() '另存為菜單代碼
If Len(Trim(Text1.Text)) 0 Then
Form1.CommonDialog1.DialogTitle = "保存文件"
Form1.CommonDialog1.InitDir = "D:\"
Form1.CommonDialog1.Filter = "文本文件|*.txt"
Form1.CommonDialog1.Flags = 2
Form1.CommonDialog1.ShowSave
If Len(Form1.CommonDialog1.FileName) 0 Then
sFileName = Form1.CommonDialog1.FileName
Open sFileName For Output As #1
whole$ = Text1.Text
Print #1, whole
Close #1
End If
End If
End Sub
Private Sub saveMenu_Click()
If Len(Trim(Text1.Text)) 0 Then
Form1.CommonDialog1.DialogTitle = "保存文件"
Form1.CommonDialog1.InitDir = "D:\"
Form1.CommonDialog1.FileName = "新建文本"
Form1.CommonDialog1.Filter = "文本文件|*.txt"
Form1.CommonDialog1.Flags = 2
Form1.CommonDialog1.ShowSave
If Len(Form1.CommonDialog1.FileName) 0 Then
sFileName = Form1.CommonDialog1.FileName
Open sFileName For Output As #1
whole$ = Text1.Text
Print #1, whole
Close #1
End If
End If
End Sub
Private Sub statusMenu_Click()
End Sub
這個啊,呵呵,應該不難吧先找到你要打開的應用程序的文件然后用一個調用代碼:System.Diagnostics.Process.Start("C:\WINDOWS\system32\notepad.exe")這是要開記事本的System.Diagnostics.Process.Start("C:\WINDOWS\system32\calc.exe")這是打開計算器的應該也可以把這兩個應用程序復制到你的程序的默認目錄下,就是BIN下吧!呵呵,試試!!要給我加分哦!!!
這個啊,呵呵,應該不難吧
先找到你要打開的應用程序的文件
然后用一個調用代碼:
System.Diagnostics.Process.Start("C:\WINDOWS\system32\notepad.exe")
這是要開記事本的
System.Diagnostics.Process.Start("C:\WINDOWS\system32\calc.exe")
這是打開計算器的
應該也可以把這兩個應用程序復制到你的程序的默認目錄下,就是BIN下吧!
呵呵,試試!!要給我加分哦!!!