c#
站在用戶的角度思考問題,與客戶深入溝通,找到福綿網站設計與福綿網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、成都做網站、企業官網、英文網站、手機端網站、網站推廣、申請域名、虛擬主機、企業郵箱。業務覆蓋福綿地區。
C#(讀做 "C sharp",中文譯音“夏普”)是微軟公司發布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言,并定于在微軟職業開發者論壇(PDC)上登臺亮相.C#是微軟公司研究員Anders Hejlsberg的最新成果.C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網絡框架的主角.
在本文中,我將考察創建一種新計算機語言的一般動機,并將特別指明是什么原因導致了C#的出現.然后我將介紹C#和它與Java,c,c++的相似之處.其次我將討論一些存在于Java和C#之間的高層次的,和基礎的差別.我將以衡量在用多種語言開發大型應用程序的時候所需的知識(或者對這種知識的缺乏程度)來結束本文,而這正是.NET和C#的一個主要戰略.目前,C#和.NET還只能以C#語言規則,以及Windows 2000的一個"d預覽版本",還有MSDN上迅速增多的文檔集子的形式獲得(還沒有最終定型).
微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點.C#在設計者從C++繼承的可選選項方面比Java要廣泛一些(比如說structs),它還增加了自己新的特點(比方說源代碼版本定義).但它還太不成熟,不可能擠垮Java.C#還需要進化成一種開發者能夠接受和采用的語言.而微軟當前為它的這種新語言大造聲勢也是值得注意的.目前大家的反應是:"這是對Java的反擊."
C#更象Java一些,雖然微軟在這個問題上保持沉默.這也是意料中的事情,我覺得,因為Java近來很成功而使用Java的公司都報告說它們在生產效率上比C++獲得了提高.
Java所帶來的巨大影響和大家對它的廣泛接受已經由工作于這種語言和平臺之上的程序員數量明顯的說明了(估計世界范圍內共有兩百五十萬程序員使用Java).由這種語言寫成的應用程序的數量是令人驚訝的并已經滲透了每一個級別的計算,包括無線計算和移動電話(比如日本發明的Java電話).C#能夠在用戶領域獲得這樣的禮遇嗎?我們必須等待并觀望,就象已經由SSI公司的CEO和主席Kalpathi S. Suresh指出來的那樣,"我發現所有這些都是漸進的.如果C#不存在,我們總能回到Java或C和C++.這些都不完全是新技術;它們在更大的意義上來說只是大公司制造的市場噱頭.我們必須給他們時間安頓下來看看這些是不是真的對IT工業有什么影響."
C#從Java繼承而來的特點
類:在C#中類的申明與Java很相似.這是合理的因為經驗告訴我們Java模型工作得很好.Java的關鍵字import已經被替換成using,它起到了同樣的作用.一個類開始執行的起點是靜態方法Main().下面的Hello World程序展示了基本的形式:
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, world");
}
}
在這個例子中,System這個名字指向一個包括了基本C#實用類集合的命名空間(namespace).這個命名空間包括了Console類,它在這個例子中被用來輸出一個字符串.類可以是抽象的和不可繼承的:一個被申明成abstract的類不能被實例化;它只能被用做一個基類.C#關鍵字sealed就象Java關鍵字final,它申明一個類不是抽象的,但是它也不能被用做另一個類的基類.界面:就象在Java中一樣,一個界面是一組方法集合的抽象定義.當一個類或結構體實現一個界面的時候,它必須實現這個界面中定義的所有方法.一個單一的類可以實現幾個界面.也許以后會出現一些微妙的差別,但是這個特點看起來與Java相比沒有變化.布爾運算:條件表達式的結果是布爾數據類型,布爾數據類型是這種語言中獨立的一種數據類型.從布爾類型到其他類型沒有直接的轉換過程.布爾常量true和false是C#中的關鍵字.錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程.內存管理:由底層.NET框架進行自動內存垃圾回收.
C#從C和C++繼承的特點
編譯:程序直接編譯成標準的二進制可執行形式.但C#的源程序并不是被編譯成二進制可執行形式,而是一中中間語言,類似于JAVA字節碼。如果前面的Hello World程序被保存成一個文本文件并被命名為Hello.cs,它將被編譯成命名Hello.exe的可執行程序.
結構體:一個C#的結構體與C++的結構體是相似的,因為它能夠包含數據申明和方法.但是,不象C++,C#結構體與類是不同的而且不支持繼承.但是,與Java相同的是,一個結構體可以實現界面.
預編譯:C#中存在預編譯指令支持條件編譯,警告,錯誤報告和編譯行控制.可用的預編譯指令有:
#define
#undef
#if
#elif
#else
#endif
#warning
#error
#line []
沒有了#include 偽指令.你無法再用#define 語句對符號賦值,所以就不存在源代碼替換的概念--這些符號只能用在#if和#elif偽指令里.在#line偽指令里的數字(和可選的名字)能夠修改行號還有#warning和#error輸出結果的文件名.
操作符重載:一些操作符能夠被重載,而另一些則不能.特別的是,沒有一個賦值運算符能夠被重載.能夠被被重載的單目操作符是:
+ - ! ~ ++ -- true false
能夠被重載的二元運算符是:
+ - * / % | ^ == != = =
C#獨有的特點
C#最引人入勝的地方是它和Java的不同,而不是相似的地方.這一節(和這個系列第二部分的大部分地方)講述了C#實現的和Java不同的地方或者Java根本沒有的特點.
中間代碼:微軟在用戶選擇何時MSIL應該編譯成機器碼的時候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機器碼.它也明白許多--如果不是大多數的話--程序員認為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實現方式決定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一個符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當然,這一點還需要得到事實證明,因為C#和其他生成MSIL的編譯器還沒有發布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對相同.象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業技巧.Java的中間代碼和MSIL都是中間的匯編形式的語言,它們在運行時或其它的時候被編譯成機器代碼.
命名空間中的申明:當你創建一個程序的時候,你在一個命名空間里創建了一個或多個類.同在這個命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結構體.必須使用using關鍵字來引用其他命名空間的內容.
基本的數據類型:C#擁有比C,C++或者Java更廣泛的數據類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個固定的大小.又象C和C++一樣,每個數據類型都有有符號和無符號兩種類型.與Java相同的是,一個字符變量包含的是一個16位的Unicode字符.C#新的數據類型是decimal數據類型,對于貨幣數據,它能存放28位10進制數字.
兩個基本類:一個名叫object的類是所有其他類的基類.而一個名叫string的類也象object一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時你在程序中寫入一句帶引號的字符串,編譯器會創建一個string對象來保存它.
參數傳遞:方法可以被聲明接受可變數目的參數.缺省的參數傳遞方法是對基本數據類型進行值傳遞.ref關鍵字可以用來強迫一個變量通過引用傳遞,這使得一個變量可以接受一個返回值.out關鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個參數并不需要初始值.
與COM的集成:C#對Windows程序最大的賣點可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術.實際上,最終有可能在任何.NET語言里編寫COM客戶和服務器端.C#編寫的類可以子類化一個以存在的COM組件;生成的類也能被作為一個COM組件使用,然后又能使用,比方說,JScript語言子類化它從而得到第三個COM組件.這種現象的結果是導致了一個運行環境的產生,在這個環境里的組件是網絡服務,可用用任何.NET語言子類化.
索引下標:一個索引與屬性除了不使用屬性名來引用類成員而是用一個方括號中的數字來匿名引用(就象用數組下標一樣)以外是相似的.
public class ListBox: Control
{
private string[] items;
public string this[int index]
{
get
{
return items[index];
}
set
{
items[index] = value;
Repaint();
}
}
}
可以用一個循環器來匿名引用字符串內部數組成員,就象下面這樣:
ListBox listBox = ...;
listBox[0] = "hello";
Console.WriteLine(listBox[0]);
代理和反饋:一個代理對象包括了訪問一個特定對象的特定方法所需的信息.只要把它當成一個聰明的方法指針就行了.代理對象可以被移動到另一個地方,然后可以通過訪問它來對已存在的方法進行類型安全的調用.一個反饋方法是代理的特例.event關鍵字用在將在事件發生的時候被當成代理調用的方法聲明.
1 生成txt文件。
DimSaveFileDialog1AsNewSaveFileDialog()?'創建一個保存對話框
SaveFileDialog1.Filter?="txt?files?(*.txt)|*.txt"?'設置擴展名
IfSaveFileDialog1.ShowDialog()?=?System.Windows.Forms.DialogResult.OKThen?'如果確定保存
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.Filename,?Textbox1.Text,False)?'保存文本,False表示不追加文本,直接覆蓋其內容
EndIf
原文鏈接:
PublicClassSimpleCalculatorInheritsSystem.Windows.Forms.Form#Region"Windows窗體設計器生成的代碼"PublicSubNew()MyBase.New()'該調用是Windows窗體設計器所必需的。InitializeComponent()'在InitializeComponent()調用之后添加任何初始化EndSub'窗體重寫處置以清理組件列表。ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)IfdisposingThenIfNot(componentsIsNothing)Thencomponents.Dispose()EndIfEndIfMyBase.Dispose(disposing)EndSub'Windows窗體設計器所必需的PrivatecomponentsAsSystem.ComponentModel.IContainer'注意:以下過程是Windows窗體設計器所必需的'可以使用Windows窗體設計器修改此過程。'不要使用代碼編輯器修改它。FriendWithEventsLabel1AsSystem.Windows.Forms.LabelFriendWithEventsTextBox1AsSystem.Windows.Forms.TextBoxFriendWithEventsButton1AsSystem.Windows.Forms.ButtonFriendWithEventsButton2AsSystem.Windows.Forms.ButtonFriendWithEventsButton3AsSystem.Windows.Forms.ButtonFriendWithEventsButton4AsSystem.Windows.Forms.ButtonFriendWithEventsButton5AsSystem.Windows.Forms.ButtonFriendWithEventsButton6AsSystem.Windows.Forms.ButtonFriendWithEventsButton7AsSystem.Windows.Forms.ButtonFriendWithEventsButton8AsSystem.Windows.Forms.ButtonFriendWithEventsButton9AsSystem.Windows.Forms.ButtonFriendWithEventsButton10AsSystem.Windows.Forms.ButtonFriendWithEventsButton11AsSystem.Windows.Forms.ButtonFriendWithEventsButton12AsSystem.Windows.Forms.ButtonFriendWithEventsButton13AsSystem.Windows.Forms.ButtonFriendWithEventsButton14AsSystem.Windows.Forms.ButtonFriendWithEventsButton15AsSystem.Windows.Forms.ButtonFriendWithEventsButton16AsSystem.Windows.Forms.ButtonPrivateSubInitializeComponent()Me.Label1=NewSystem.Windows.Forms.LabelMe.TextBox1=NewSystem.Windows.Forms.TextBoxMe.Button1=NewSystem.Windows.Forms.ButtonMe.Button2=NewSystem.Windows.Forms.ButtonMe.Button3=NewSystem.Windows.Forms.ButtonMe.Button4=NewSystem.Windows.Forms.ButtonMe.Button5=NewSystem.Windows.Forms.ButtonMe.Button6=NewSystem.Windows.Forms.ButtonMe.Button7=NewSystem.Windows.Forms.ButtonMe.Button8=NewSystem.Windows.Forms.ButtonMe.Button9=NewSystem.Windows.Forms.ButtonMe.Button10=NewSystem.Windows.Forms.ButtonMe.Button11=NewSystem.Windows.Forms.ButtonMe.Button12=NewSystem.Windows.Forms.ButtonMe.Button13=NewSystem.Windows.Forms.ButtonMe.Button14=NewSystem.Windows.Forms.ButtonMe.Button15=NewSystem.Windows.Forms.ButtonMe.Button16=NewSystem.Windows.Forms.ButtonMe.SuspendLayout()''Label1'Me.Label1.Location=NewSystem.Drawing.Point(16,16)Me.Label1.Name="Label1"Me.Label1.Size=NewSystem.Drawing.Size(48,16)Me.Label1.TabIndex=0Me.Label1.Text="結果:"''TextBox1'Me.TextBox1.Location=NewSystem.Drawing.Point(64,8)Me.TextBox1.Name="TextBox1"Me.TextBox1.Size=NewSystem.Drawing.Size(120,21)Me.TextBox1.TabIndex=1Me.TextBox1.Text=""''Button1'Me.Button1.Location=NewSystem.Drawing.Point(200,8)Me.Button1.Name="Button1"Me.Button1.Size=NewSystem.Drawing.Size(56,24)Me.Button1.TabIndex=2Me.Button1.Text="清空"''Button2'Me.Button2.Location=NewSystem.Drawing.Point(48,56)Me.Button2.Name="Button2"Me.Button2.Size=NewSystem.Drawing.Size(24,24)Me.Button2.TabIndex=3Me.Button2.Text="1"''Button3'Me.Button3.Location=NewSystem.Drawing.Point(88,56)Me.Button3.Name="Button3"Me.Button3.Size=NewSystem.Drawing.Size(24,24)Me.Button3.TabIndex=4Me.Button3.Text="2"''Button4'Me.Button4.Location=NewSystem.Drawing.Point(136,56)Me.Button4.Name="Button4"Me.Button4.Size=NewSystem.Drawing.Size(24,24)Me.Button4.TabIndex=5Me.Button4.Text="3"''Button5'Me.Button5.Location=NewSystem.Drawing.Point(48,88)Me.Button5.Name="Button5"Me.Button5.Size=NewSystem.Drawing.Size(24,24)Me.Button5.TabIndex=6Me.Button5.Text="4"''Button6'Me.Button6.Location=NewSystem.Drawing.Point(88,88)Me.Button6.Name="Button6"Me.Button6.Size=NewSystem.Drawing.Size(24,24)Me.Button6.TabIndex=7Me.Button6.Text="5"''Button7'Me.Button7.Location=NewSystem.Drawing.Point(136,88)Me.Button7.Name="Button7"Me.Button7.Size=NewSystem.Drawing.Size(24,24)Me.Button7.TabIndex=8Me.Button7.Text="6"''Button8'Me.Button8.Location=NewSystem.Drawing.Point(48,120)Me.Button8.Name="Button8"Me.Button8.Size=NewSystem.Drawing.Size(24,24)Me.Button8.TabIndex=9Me.Button8.Text="7"''Button9'Me.Button9.Location=NewSystem.Drawing.Point(88,120)Me.Button9.Name="Button9"Me.Button9.Size=NewSystem.Drawing.Size(24,24)Me.Button9.TabIndex=10Me.Button9.Text="8"''Button10'Me.Button10.Location=NewSystem.Drawing.Point(136,120)Me.Button10.Name="Button10"Me.Button10.Size=NewSystem.Drawing.Size(24,24)Me.Button10.TabIndex=11Me.Button10.Text="9"''Button11'Me.Button11.Location=NewSystem.Drawing.Point(48,152)Me.Button11.Name="Button11"Me.Button11.Size=NewSystem.Drawing.Size(24,24)Me.Button11.TabIndex=12Me.Button11.Text="0"''Button12'Me.Button12.Location=NewSystem.Drawing.Point(176,56)Me.Button12.Name="Button12"Me.Button12.Size=NewSystem.Drawing.Size(24,24)Me.Button12.TabIndex=13Me.Button12.Text="+"''Button13'Me.Button13.Location=NewSystem.Drawing.Point(176,88)Me.Button13.Name="Button13"Me.Button13.Size=NewSystem.Drawing.Size(24,24)Me.Button13.TabIndex=14Me.Button13.Text="-"''Button14'Me.Button14.Location=NewSystem.Drawing.Point(176,120)Me.Button14.Name="Button14"Me.Button14.Size=NewSystem.Drawing.Size(24,24)Me.Button14.TabIndex=15Me.Button14.Text="*"''Button15'Me.Button15.Location=NewSystem.Drawing.Point(176,152)Me.Button15.Name="Button15"Me.Button15.Size=NewSystem.Drawing.Size(24,24)Me.Button15.TabIndex=16Me.Button15.Text="/"''Button16'Me.Button16.Location=NewSystem.Drawing.Point(88,152)Me.Button16.Name="Button16"Me.Button16.Size=NewSystem.Drawing.Size(72,24)Me.Button16.TabIndex=17Me.Button16.Text="計算"''SimpleCalculator'Me.AutoScaleBaseSize=NewSystem.Drawing.Size(6,14)Me.ClientSize=NewSystem.Drawing.Size(264,190)Me.Controls.Add(Me.Button16)Me.Controls.Add(Me.Button15)Me.Controls.Add(Me.Button14)Me.Controls.Add(Me.Button13)Me.Controls.Add(Me.Button12)Me.Controls.Add(Me.Button11)Me.Controls.Add(Me.Button10)Me.Controls.Add(Me.Button9)Me.Controls.Add(Me.Button8)Me.Controls.Add(Me.Button7)Me.Controls.Add(Me.Button6)Me.Controls.Add(Me.Button5)Me.Controls.Add(Me.Button4)Me.Controls.Add(Me.Button3)Me.Controls.Add(Me.Button2)Me.Controls.Add(Me.Button1)Me.Controls.Add(Me.TextBox1)Me.Controls.Add(Me.Label1)Me.Name="SimpleCalculator"Me.Text="簡單計算器"Me.ResumeLayout(False)EndSub#EndRegionPrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)EndSubPrivateSubTextBox1_TabStopChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickDimbtnAsButton'按鈕類型的變量btn=sender'把產生該事件的按鈕對象賦值給btnTextBox1.Text=TextBox1.Text+btn.Text'把該按鈕的Text屬性值連接到TextBox1中EndSubPrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton5.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton6.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton7_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton7.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton8_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton8.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton9_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton9.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton10_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton10.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton11_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton11.ClickDimbtnAsButtonbtn=senderTextBox1.Text+=btn.TextEndSubPrivateSubButton12_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton12.ClickDimbtnAsButtonbtn=sender'在文本框的Text屬性后連接一個空格、本按鈕的Text屬性值和一個空格TextBox1.Text=TextBox1.Text+""+btn.Text+""EndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickTextBox1.Text=""'清空文本框EndSubPrivateSubButton13_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton13.ClickDimbtnAsButtonbtn=senderTextBox1.Text=TextBox1.Text+""+btn.Text+""EndSubPrivateSubButton14_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton14.ClickDimbtnAsButtonbtn=senderTextBox1.Text=TextBox1.Text+""+btn.Text+""EndSubPrivateSubButton15_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton15.ClickDimbtnAsButtonbtn=senderTextBox1.Text=TextBox1.Text+""+btn.Text+""EndSubPrivateSubButton16_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton16.Click'發生錯誤轉移到標號“ErrorPro”指定的行去執行錯誤處理程序OnErrorGoToErrorProDimrAsDecimal'保存計算結果的變量DimtAsString=TextBox1.Text'用于保存文本框中的算術表達式DimspaceAsInteger=t.IndexOf("")'搜索空格位置,如果沒有空格,返回值為0'字符串的取子符方法,第二個參數小于0,則將產生錯誤號為5的異常,即過程參數不正確Dims1AsString=t.Substring(0,space)'通過取子串方法獲得第一個運算數DimopAsString=t.Substring(space+1,1)'通過取子串方法獲得運算符Dims2AsString=t.Substring(space+3)'通過取子串方法獲得第二個運算數Dimarg1,arg2AsIntegerarg1=Val(s1):arg2=Val(s2)SelectCaseopCase"+":r=arg1+arg2Case"-":r=arg1-arg2Case"*":r=arg1*arg2Case"/":r=arg1/arg2CaseElseMsgBox("輸入的運算符有誤!")ExitSubEndSelectTextBox1.Text=CStr(r)'顯示結果ExitSub'退出過程ErrorPro:'錯誤處理程序塊SelectCaseErr.NumberCase6'除數為零時,或運算溢出時的錯誤號MsgBox("算術運算溢出!",,"溢出提示")TextBox1.Focus()ExitSubCase5'Substring過程的參數不符合要求的錯誤號MsgBox("必須輸入運算符和第二個運算數!",,"運算數少")ExitSubCaseElse'其它情況顯示錯誤號和錯誤原因MsgBox("錯誤號為"Err.NumberChr(10)Chr(13)"錯誤原因:"Err.Description)ExitSubEndSelectEndSubEndClass
首先在form1上建立三個命令按鈕,分別為command1(打開預啟動的文件);command2(設定時間的按鈕);第三個command3(即可啟動)按鈕可有可無;一個label1用來顯示你預打開的文件名的路徑;一個lbltime用來顯示現在的時間;還有一個commondialog,它在工程菜單的部件中,你可把它加到工具箱中再開始使用;關于對話框你不必自己建,只要從應用程序向導中添加即可;一個timer,它的interval=500。 其次在form1的屬性中設置為:startupposition=2-centerscreen和maxbutton=false;label1的屬性中設置為:alignment=2-center。 外觀大致是如圖所示: 下面我們開始編程: OptionExplicit DimAlarmTime '申明變量 --------- PrivateSubCommand1_Click() Calldialog '調用dialog子程序 EndSub -------- PrivateSubCommand2_Click() AlarmTime=InputBox(“請輸入你想設定的時間,例如(19:12:00)",“小鬧鐘") IfAlarmTime=“"ThenExitSub IfNotIsDate(AlarmTime)Then MsgBox“你所輸入的不是時間格式,請重試!",,“Wrong" Else AlarmTime=CDate(AlarmTime) EndIf '判斷輸入的是否可轉換成time格式 'isdate函數是判斷輸入的是否可轉換成date格式 EndSub -------------- PrivateSubCommand3_Click() Calldeng '調用deng子程序 EndSub --------------- PrivateSubForm_Click() frmAbout.Show '顯示關于對話框 EndSub ------------- PrivateSubForm_Load() Command3.Enabled=0 AlarmTime=“" '初始化時command3為不可用的 EndSub --------------- PrivateSubForm_Resize() IfWindowState=1Then mintime else caption=“小鬧鐘" EndIf '如果窗口被最小化,則調用mintime程序 EndSub --------------- PrivateSubmintime() Caption=Format(Time,“longTime") '使用長時間格式來顯示時間 EndSub --------------- PrivateSubTimer1_Timer() IflblTime.CaptionCStr(Time)Then lblTime.Caption=Time EndIf '顯示時間每秒鐘的變化 IfTime=AlarmTimeThen Calldeng EndIf '判斷如果現在的時間超過了設定的時間,則調用deng子程序 IfWindowState=1Then IfMinute(CDate(Caption))Minute(Time)Then mintime EndIf EndIf '最小化時顯示時間每分鐘的變化 EndSub ------------- Subdialog() CommonDialog1.Flags=cdlCFBoth CommonDialog1.ShowOpen Label1.Caption=CommonDialog1.filename IfLabel1“"Then Command3.Enabled=-1 Else ExitSub EndIf '把打開的文件名給于label1 '如果label1不為空時,則command3即可用 EndSub -------------- Subdeng() Dimss ss=Shell(Label1.Caption,1) End '啟動指定的文件,并且結束小鬧鐘程序 EndSub 最后在about對話框中要提的是:在form_load中app.title表示你的應用程序的名字;app.major、minor、revision是關于應用程序的版本信息;lblDescription.Caption用于對本程序的一些說明描述之類的話;lblDisclaimer.Caption用于版權信息或警告等。 好了,至此我們已完成了一個簡單的VB程序的編寫,希望你能設計出更好的鬧鐘程序來!
當前題目:endifvb.net的簡單介紹
標題URL:http://vcdvsql.cn/article0/dopesio.html
成都網站建設公司_創新互聯,為您提供自適應網站、商城網站、響應式網站、網站維護、外貿建站、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯