這是在一本書看到的範例,原本的範例是C# Silverlight,不過小喵自己是使用VB.NET開發慣了,所以特別將這個範例轉成VB.NET。
緣起
這是在一本書看到的範例,原本的範例是C# Silverlight,不過小喵自己是使用VB.NET開發慣了,所以特別將這個範例轉成VB.NET。
轉換過程中,發現其實C#的寫法與VB.NET在撰寫上還是有相當程度上的差異,所以一般如果對於C#不熟悉的人,或者對於VB.NET沒有那麼深入的人,可能對於這樣的範例從C#轉換成VB.NET會有點吃力。這時候,小喵建議有這樣困擾的朋友們,【MSDN】是我們開發的最佳良伴。遇到不熟悉,C#相同的東西在VB.NET上不知道如何轉換撰寫的話,找出關鍵字,去MSDN找一找,應該就可以找到相關的VB.NET範例。
需求
回到主題,我們希望在WP7上面,做一個數字時鐘,可以把目前的時間顯示出來。
畫面
這樣的題目其實不難,我們目標就是拉名稱為txtblk的一個TextBlock在畫面中,然後透過Timer,每秒鐘啟動一次,把目前的時間顯示在這個TextBlock的Text就可以了。於是我們首先從工具箱中拉一個TextBlock來到畫面中央,設定他的XAML如下
<TextBlock HorizontalAlignment="Center" Name="txtblk" Text="txtblk" VerticalAlignment="Center" />
程式(C#)
書本上的範例,是C#的,小喵將之轉錄如下:
using System;
using System.Windows.Threading;
using Microsoft.Phone.Controls;
namespace SilverlightSimpleClock
{
public partial class MainPage:PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
DispatcherTimer tmr = new DispatcherTimer();
tmr.Interal = TimeSpan.FromSeconds(1);
tmr.Tick += OnTimerTick;
tmr.Start();
}
void OnTimerTick(object sender, eventArgs args)
{
txtblk.Text = DateTime.Now.ToString();
}
}
}
程式(VB.NET)
如果您是使用C#的朋友,這樣的程式碼就可以運作了,不過,如果是VB.NET呢??
Imports System
Imports System.Windows.Threading
Imports Microsoft.Phone.Controls
Partial Public Class MainPage
Inherits PhoneApplicationPage
'宣告tmr是一個DispacherTimer的物件,並建立執行個體
'宣告為WithEvents,後面可以透過Handles來讓Sub與事件結合在一起
Private WithEvents tmr As New DispatcherTimer
' 建構函式
Public Sub New()
InitializeComponent()
End Sub
'自己撰寫一個OnTimerTick的Sub,並且設定Hadles tmr的Tick事件
Private Sub OnTimerTick(ByVal sender As Object, ByVal args As EventArgs) Handles tmr.Tick
'當Timer Tick的時候,讓TextBlock顯示目前的時間
Me.txtblk.Text = DateTime.Now.ToString
End Sub
Private Sub MainPage_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
'Page 載入後
'設定Timer的間隔,設定為秒
tmr.Interval = TimeSpan.FromSeconds(1)
'啟動Timer
tmr.Start()
End Sub
End Class
稍微比較一下,有關於事件的處理,C#與VB.NET的寫法還真的不太一樣。小喵對於這部份也不是很熟,所幸透過MSDN查詢看看,或者找出關鍵字去Google看看VB.NET的寫法,最後還是可以找出VB.NET運作的語法,如果有相同狀況的朋友們,可以參考看看。
^_^
執行畫面
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |