發表文章

目前顯示的是 2007的文章

DataSet與並行違規

在VS2005中資料處理常常會用到DataSet,而DataSet的特性是會把資料從資料來源中取出之後放到Client端的記憶體中;而在資料處理完成之後要Update回資料庫,這時候如果資料來源中的資料跟當初我們撈出來的資料是不相符合的,也就是可能被其他使用者變更過了,這時候就會出現"並行違規"的錯誤訊息,那我們應該怎麼去處理這個錯誤呢? 下面介紹的是比較簡單的方式,會利用DataSet的Merge再一次的將資料合併,並且把變更Update回資料庫,感覺就是"後面的變更會蓋掉前面的",程式碼如下 Try Me.xxxTableAdapter.Update(Me.xxxDataSet.xxxDataTable) Me.xxxDataSet.xxxTable.AcceptChanges() MessageBox.Show("資料儲存成功") Catch dbex As Data.DBConcurrencyException If MessageBox.Show("資料可能經由其他使用者變更過,仍要更新嗎?", "更新錯誤", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then Try Using TempDS As New xxxDataSet.xxxDataTable Me.xxxTableAdapter.Fill(TempDS) Me.xxxDataSet.xxxDataTable.Merge(TempDS, True) Me.xxxTableAdapter.Update(Me.xxxDataSet.xxxDataTable) Me.xxxDataSet.xxxDataTable.AcceptChanges()

Expression Blend SP1

資料來源: http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2491629&SiteID=14 Blend 的 Service Pack 1已經出了,有需要的朋友可以去看看,下面是相關連結 Microsoft Expression Blend Service Pack 1 Issues that are fixed in Expression Blend Service Pack 1

運算子的優先順序

一般我們在撰寫程式時常常會用到運算子,比如"="、"AND"、"ANDALSO"等等;有時候不小心常常會在這部分發生一些錯誤,所以不知道是不行的,比如今天撰寫程式時就發生一個錯誤,像下面這樣 If MyByteArray(8) And &HF = 0 Then ... Else ... End If 這段是把我接收到的byte陣列中的一個抓出來,然後取低位元組來用(也就是bit0~bit3),判斷是不是0,是的話要做特殊的處理,結果執行時發現永遠不會成立,為什麼呢?查了MSDN之後原來"="運算子的優先權高於AND運算子,所以會先處理 &HF = 0 的部分結果當然是傳回0,之後是 MyByteArray(8) And 0 結果也會是0,再來就輪到IF了,IF 0會判定為False,所以我程式的動作就會異常了..T.T 解決的方式是 If (MyByteArray(8) And &HF) = 0 Then ... Else ... End If 所以還是要養成好習慣,該有括號的地方不要偷懶啊.. 相關參考 Visual Basic 中的運算子優先順序

Visual Studio 2008

Visual Studio 2008 英文版本已經發行了 資料來源: http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2432939&SiteID=14 Express Edition http://www.microsoft.com/express/ . Net Framework 3.5 http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en 相關參考資源可以到資料來源那邊看看

SNTP Sample for Windows CE

在Windows CE的平台上如果要做SNTP自動校時的功能我們應該要如何實做呢?下面這邊有些相關資料可以參考 SNTP Client in C# RFC 2030 下面的是參考上面所提的C#範例修改過來的(開發平台是VS2003在CE4.2上面),省略了很多部分,有興趣的可以參考看看 ''共用模組(設定系統時間的API) _ Public Structure SYSTEMTIME Public year As Short Public month As Short Public dayOfWeek As Short Public day As Short Public hour As Short Public minute As Short Public second As Short Public milliseconds As Short End Structure 'SYSTEMTIME _ Public Function SetLocalTime(ByRef time As SYSTEMTIME) As Boolean End Function _ Public Function SetSystemTime(ByRef time As SYSTEMTIME) As Boolean End Function ''主程式Form1,上面有TextBox1(用來顯示訊息),Button(名稱為btnSyncTime), ''TextBox(名稱為txtServerName,用來放校時主機的IP位址) ''傳送給校時主機用 Dim btySend(47) As Byte ''接收資料用 Dim btyRecv(47) As Byte Private Sub btnSyncTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSyncTime.Click

How Do I..

最近MSDN上面推出了 MSDN 教學短片 ,是個不錯的學習資源,在美國的MSDN上今天也看到了 How Do I? 的教學短片,各位鄉親有空也可以前往觀賞一下;比如說下面這個看過覺得還不錯 Creating Animated Buttons in Blend 是教你如何用Blend做一個button,並且在mouseover、mouseleave的時候去做相關動作,雖然是說英文,不過看著他操作相信也會有不錯的學習成果的。

如何列舉Access資料庫中的結構資訊

參考資料 OleDbConnection.GetOleDbSchemaTable 方法 Dim CN As OleDb.OleDbConnection Dim DA As OleDb.OleDbDataAdapter Dim DT As DataTable Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CN = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\XXXXX.mdb;Persist Security Info=True") CN.Open() DT = CN.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"}) DisplayData(DT) End Sub Private Sub DisplayData(ByVal table As DataTable) For Each row As DataRow In table.Rows For Each col As DataColumn In table.Columns Debug.Print("{0} = {1}", col.ColumnName, row(col)) Next Debug.Print("============================") Next End Sub

如何取得資料庫中自動編號欄位下一筆的值

這個方式是在MSDN論壇上面看到的(原文作者是chhuang 大大),有需要的朋友可以參考看看 資料來源: 請問一下mssql 的IDENTITY 要怎樣知道next value 使用方式 SELECT IDENT_CURRENT ('[Schema].[Table]') + IDENT_INCR ('[Schema].[Table]')

在裝置(mobile)的環境下如何取得執行檔位置呢

一般我們在做開發的時候要用到目前執行檔的位置通常會這樣用 Application.StartupPath 但是到了裝置上面沒有這個東西可以用,怎麼辦呢?我們可以利用下面的方式來取得 Public Function GetAppPath() As String Return System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString) End Function 如果你是用C#的話請用下面這個 MessageBox.Show(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase));

安裝部屬全攻略之─如何製作安裝檔

圖片
在我們寫完了漂漂的程式之後要交到使用者手上,總不能直接把xxxx.exe給使用者吧,這個時候我們需要製作安裝檔來交給使用者安裝,那怎麼做呢?嗯,下面我們用圖說方式來說明 加入安裝部屬專案 在VS IDE環境中的功能表選取[檔案]→[加入]→[新增專案],之後選擇[其他專案類型]→[安裝部屬專案],像下面的圖 加入專案輸出以及相關檔案 加入新的專案之後,如果依照預設值沒有變動東西的話,現在應該在[方案總管]中會看到新的專案"Setup1",在左邊我們會看到[目標電腦上的檔案系統],下面預設會有3個項目,[使用者的桌面]、[使用者的程式功能表]、[應用程式資料夾],這三個就是模擬成 目標電腦 上的相關位置,簡單的說如果安裝完後要再使用者的電腦桌面上加入捷徑之類的東西,那我們就要把東西放在[使用者的桌面];如果要在"開始功能表"裡面加入項目那就要在[使用者的程式功能表]裡面加入東西;[應用程式資料夾]就是對應到PROGRAMFILE,也就是程式安裝之後產生的資料夾嚕~ ;好,我們先來加入最重要的exe檔(執行檔)吧。 首先點一下左邊烈表的[應用程式資料夾],在右邊的空白處按下滑鼠右鍵會出現下圖的快顯功能表 點選[加入]→[專案輸出],之後會看到多了一個[主要輸出從XXXX(作用中)]的項目,這就是我們的執行檔嚕~畫面上因為我的測試專案很簡單,所以只有一個專案輸出,如果你的專案有參考其他的東西(比如說有用到ReportViewer)相關的dll也會自動的幫你加入;另外如果你的專案有用到其他檔案(比如說mdb檔)或是要建立資料夾的話在這邊也要一一手動加入喔~這個部分vs2005是不會幫你自動建立的喔。 設定相關屬性 執行檔作好了,再來,安裝的時候VS怎麼知道要幫我裝到甚麼目錄裡面呢?嗯,問的好!我們就來設定一下相關設定;首先我們先了解一下,VS2005是怎麼去抓相關設定的,照下面這張圖 我們可以看到[應用程式資料夾]它的DefaultLocation屬性是設定成下面這樣 [ProgramFilesFolder][Manufacturer]\[ProductName] 上面這3個項目就會對應到某一個屬性設定,首先[ProgramFilesFolder]就是對應到使用者電腦的"Program Files"資料夾了,而[M

移動無邊框的Form

這篇是回應網友問題便測試看看,語言是用C#,有興趣的朋友可以參考看看 using System.Runtime.InteropServices; namespace WindowsApplication1 { public partial class Form1 : Form { const int WM_SYSCOMMAND = 0x112; const int SC_MOVE = 0xF012; [DllImport("user32",EntryPoint="ReleaseCapture",CharSet=CharSet.Ansi)] private extern static int ReleaseCapture (); [DllImport("user32",EntryPoint="SendMessageA",CharSet=CharSet.Ansi)] private extern static int SendMessage (IntPtr hwnd , int wMsg , int wParam, int lParam ) ; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void Form1_MouseDown(object sender, MouseEventArgs e) { int i ; i = ReleaseCapture(); i = SendMessage(this.Handle , WM_SYSCOMMAND, SC_MOVE, 0); } } }

Expression Design

先前我們有簡單的介紹過Blend的部分,Design是另外一項產品,現在有說明文件以及SP1可以下載喔,請參考下面相關資訊 資料來源: http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2360110&SiteID=14 Design SP1 http://www.microsoft.com/downloads/thankyou.aspx?familyId=937adf32-0fea-4bb7-b727-cbfbdf3fe032&displayLang=zh-tw Microsoft Expression Design 使用者指南 http://www.microsoft.com/downloads/details.aspx?FamilyID=6956d2b5-b070-42a3-bd68-665a8c865216&DisplayLang=zh-tw

如何讓智慧型裝置發出聲音

感覺上這個問題詢問的頻率還滿高的,在PDA上面我們怎麼利用程式讓它發出聲音(播放wav檔)呢?這裡我們用呼叫API的方式來做,請參考下面程式碼 Imports System.Runtime.InteropServices Public Class Form1 Public Const SND_FILENAME = &H20000 Public Const SND_SYNC = &H0 ''宣告方式 _ Public Shared Function PlaySound(ByVal lpszName As String, ByVal hModule As Integer, ByVal dwFlags As Integer) As Integer End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PlaySound("\windows\Alarm2.wav", 0, 0) End Sub End Class

書籍推薦-.Net Framework應用程式開發基礎

圖片
這本書看了之後覺得真的不錯,在對於.net framework部分能有更進一步的了解;其中有說明.net framework基礎的部分,像是比如說什麼是實值型別,什麼是參考型別;也有說明到集合、泛型運用的部分,有興趣的朋友可以到書店翻翻。 而書名中的"基礎"這可能會讓人覺得好像是很入門的東西,但其實不是喔~書中介紹的是.net framework中較常會使用的類別庫還有一些對.net framework該去了解的部分,所以如果您是剛剛要開始接觸的應該會覺得比較難懂一些喔~ 附上相關網址參考 Microsoft .NET framework 2.0: 應用程式開發基礎

如何將Base64字串資料轉回圖形

這也是一個MemoryStream的應用之一,不囉嗦,我們直接來瞧瞧程式碼吧~ Dim Str As String Str = _ "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8" & _ "YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA" & _ "CxMBAJqcGAAAA3VJREFUOE+lU/9P1HUYf+7gjvt87vP17jzsiOsqw7DpKbO7GczU2SGrucpSWc5go8Gw" & _ "kmE7aGUM5YfAyqhNiRBcWsrS4Dg1mBbZBAszqwV6kJeYfcOYcR73Acbx6s1Rf0HP9tp7772f5/W897xe" & _ "jw4A/a/gnT4SHMuJVI9uxeO1NXZnVobAm0hRVFJUBtt8Um12MvEcLcx5/umlvqqdKSkGUq1y4p1451oi" & _ "aTH5Cg42a9NA8PNQWLJnLhB4YyJBtVnJYFlE9qyXci9ejkM /gosWFFWaeL0pKoKUbIjN8W7sbnh91tA" & _ "nBHMxvvHBgY5NcMlSSKZJZksDxSt+aRnKnrjJhD6ZRptPdNwel4oF0RBR3Jm4dbWc8CVGwzXgYHhGQz9" & _ "Aezcd6k/2bbczi+p8u5r/+vv736eQaBXw0fdMQT7gIqmWzBZM7NJEHjb6k01n7Z0A8d7ptB+fgKBrzSc" & _ "/gEoeWNgsKJpZLTzUhxNXRpqjsawo2UaRe9EkPHgxlZRMFlIkSUyGpPlrCfqzviPALs/nsSeNg31HRr2" & _ "d8XxZnAKJe+NY+WrEaS

利用wininet.dll來做FTP的功能

要怎麼利用wininet.dll來做FTP相關的功能呢?下面相關部分可以參考看看,這邊主要是利用呼叫Win32API來做相關功能而.net framework中也有 FTPClient相關的東西可以用,FTPClient的部分就請自行查詢MSDN嚕~之後有時間再來整理 ,[2008.4.16編輯]查詢MSDN後發現名稱不是FTPClient(奇怪,之前怎麼一直記得有這個..),請參考下面相關資料 想問一些ftp client的 program FTP 用戶端技術範例 。 首先有些參考資料可以看看 FILE TRANSFER PROTOCOL (FTP) RFC959 SAMPLE: 在 Visual Basic 與 SimpleFtp 使用 WinInet FTP API Windows Internet Services (WinInet) WinInet Functions Calling WinINet Functions Asynchronously 下面是參考上面所提修改而來的code Imports System.Runtime.InteropServices Public Class cFTP ' Internet Session Handle (InternetOpen) Private _hInternet As Integer ' Internet Service Handle (InternetConnect) Private _hConnect As Integer Private _ServerName As String = "" Private _UserName As String = "anonymous" Private _Password As String = "" ''儲存是否需要密碼驗證的狀態 Private _IsNeedPassword As Boolean = True ''儲存是否需要via Proxy Private _IsNeedProxy As Boolean = False ''儲存傳輸模式

列舉IP位置

要如何利用Visual Basic列舉出目前電腦上所有網卡所設定或取得的IP位置呢?請參考看看下面程式碼 Dim S As String = "" For Each item As Net.IPAddress In Net.Dns.GetHostByName(Net.Dns.GetHostName).AddressList S &= item.AddressFamily.ToString & " " & item.ToString & vbCrLf Next MessageBox.Show(S)

圖形縮放

利用Image類別提供的相關功能或是利用PictureBox我們可以很簡單的載入或是顯示圖形在畫面上,那麼如果要縮/放圖形的話應該要怎麼做呢?請參考看看下面程式碼 Dim img As Image img = Image.FromFile(Application.StartupPath & "\MyImages\9F.jpg") Dim G As Graphics = PictureBox2.CreateGraphics Dim P(2) As Point ''左上 P(0) = New Point(0, 0) ''右上 P(1) = New Point(100, 0) ''左下 P(2) = New Point(0, 100) G.DrawImage(img, P) 相關參考 ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.cht/cpref8/html/M_System_Drawing_Graphics_DrawImage_1_d482ade5.htm 或是可以直接上 MSDN 查詢有關DrawImage相關的部分 如果要把修改後的圖存成另外的檔案可以參考下面程式碼 Dim img As Image Dim B As New Bitmap(100, 100) img = Image.FromFile(Application.StartupPath & "\MyImages\9F.jpg") Dim G As Graphics = Graphics.FromImage(B) Dim P(2) As Point ''左上 P(0) = New Point(0, 0) ''右上 P(1) = New Point(100, 0) ''左下 P(2) = New Point(0, 100) G.DrawImage(img, P) B.Save(Application.StartupPath & "\tmp.jpg") 如果想要存到MemoryStream裡面可以參考下面程式碼,其實都是大同小異 Dim img As Image Dim B As

StopWatch

在前一篇 Performance Count 我們提到用Win32 API來取得程式碼經過的時間,在.Net framework中也提供了 StopWatch 類別供使用,下面是簡單的使用範例 Dim A As New Stopwatch A.Start() Threading.Thread.Sleep(1200) A.Stop() MessageBox.Show(A.ElapsedMilliseconds)

Performance Count

"在撰寫程式的過程中,有些時候我們要知道某些程式碼的效能,那麼要怎麼做呢?我們可以簡單的利用Win32 API來做這樣的功能 Imports System.Runtime.InteropServices Public Class cQueryPerformance Private _Freq As Int64 Private _Count1, _Count2 As Int64 _ Public Shared Function QueryPerformanceFrequency( _ ByRef lpFrequency As Int64) As Integer End Function _ Public Shared Function QueryPerformanceCounter( _ ByRef lpPerformanceCount As Int64) As Integer End Function ''' ''' 設定起始點 ''' ''' ''' Public Function StartCount() As Boolean If QueryPerformanceFrequency(_Freq) <> 0 Then If QueryPerformanceCounter(_Count1) <> 0 Then Return True Else Return False End If Else Return False End If End Function ''' ''' 設定結束點成功並傳回經過時間(ms) ''' ''' '&

Developing and Deploying Pocket PC Setup Applications

在VS2005中開發Windows Mobile的程式完成之後,通常我們會利用封裝部屬的專案類型去產生cab檔案,之後將cab檔案複製到Mobile裝置中在去執行安裝;那麼如果要從一般的PC來執行安裝的動作應該要怎麼做呢?下面這邊有相關文章可以參考看看 http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2123640&SiteID=14 Developing and Deploying Pocket PC Setup Applications

Expression Blend - 簡介

圖片
在前面這一篇 準備.Net framework 3.0開發環境中 ,我們提到了如果要開發.Net Framework 3.0應用程式的話我們需要安裝哪些東西;而Framework 3.0中Xaml是很重要的一環,Xaml跟Xml、HTML長的感覺滿像的同樣也是"標籤式"的方式,而標籤/屬性那麼多,我怎麼記的住呢?於是乎Blend就出現了 Blend是Microsoft expression產品線其中的一樣,如果您還沒有使用過可以到下面這邊看看官方的介紹以及下載試用版, Expression Blend Expression 系列共有下面四種東西 Expression Web - 設計網頁的工具算是FrontPage的下一代 Expression Blend - 使用者介面設計工具 Expression Design - 圖形設計工具 Expression Media - 資產管理工具 這裡主要我們要介紹的是Blend,一打開Blend之後的開發環境大概是 左邊會有一列工具列再過來事件以及專案中所有物件的列表,中間的部分就是我們的工作區也就是我們的Form了,右邊是專案總管/屬性/資源的部分,好了,我們就建立一個新的專案來測試看看吧; 從檔案功能表中選取新增專案,建立一個新的專案之後,我們可以在工作區看到一個名為Window1的Form, 之後在右邊我們選擇屬性視窗,在筆刷的部分我們選擇漸層筆刷,像下圖這樣 這樣子很簡單的我們就得到了一個漸層的背景了,我們不只能夠設定兩種顏色的漸層,我們可以加入很多種顏色的漸層,例如下圖這樣在"黃色圈圈"的地方按下滑鼠左鍵便會新增一個節點讓漸層色彩變成了三種 之前我們可能要畫圖,利用載入圖片的功能才能做到的現在很容易就可以完成了;好了我們完成了背景的漸層色,可是我像改變一下漸層的方向,我應該怎麼做?在左邊我們會看到一個箭頭像下面這個 在我們的Form上面多出了一個箭頭,將滑鼠靠近箭頭的兩端,你會看到滑鼠變成的上下弧形的圖案,這個時候我們就可以改變漸層的方向了;而點在箭頭上面我們可以調整漸層的深度,這個部分我就不抓圖啦~馬上來動手試試看吧 ~ 說是簡介好像也太簡單了,好像沒說到什麼東西,呵呵 ~ 我自己也正在開始學習的階端,一步一步來,有什麼心得再慢慢整理上來嚕 ~ 有錯誤或是更好的方式還請多指點

如何加入導覽列

嗯,這篇也是發揮抄抄功,請到原文位置看看如何加入吧 http://skyvee.blogspot.com/2007/07/bloggerblogspot-menu-bar.html 另外繼續閱讀的功能(也就是顯示文章摘要)請參考下面位置嚕 ~ http://skyvee.blogspot.com/2007/06/blogger-hide-fullpost.html

程式碼區塊使用方法

請直接參考原文位置嚕 ~ http://skyvee.blogspot.com/2007/07/code.html 第二種方式利用 syntaxHighLighter 來做程式碼說明,請參考下面這邊 http://yehhou.blogspot.com/2007/06/blogger-dpsyntaxhighlighter.html 兩種的效果分別是 Private Sub Test() Dim A as Integer A = 100 End Sub Private Sub Test() Dim A as Integer A = 100 End Sub

瀏覽人數統計

嗯,開始在blogger上面搞東搞西,要學的東西還真是不少,先試試看一些現有的東西嚕 ~ 右上角的人數統計使用還滿簡單的,到下面網址 http://www.histats.com/ 經過幾個簡單的步驟之後,在自己的blogger上面加上相關的javascript程式碼區塊就出來了,有興趣的朋友可以測試看看。 相關資源: http://skyvee.blogspot.com/2007/06/blog.html

MSDN中文教學課程

全新的中文教學課程上線了喔,雖然新增的部分不多,但是有一些現場研討會的錄影可以看喔,有興趣的朋友可不要錯過了 MSDN現場實況錄影 MSDN中文教學課程首頁

繪製矩形

繪圖部分一直是我不熟悉的領域,最近想弄一些東西應該會來研究一下,下面這段程式在Form上面按住左鍵後移動滑鼠便會畫出矩形,算是第一步吧 ~ Dim BG As Bitmap Dim G As Graphics Dim IsMouseDown As Boolean = False Dim P_Start As New Point Private Sub frmEdit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Show() Application.DoEvents() BG = New Bitmap(PictureBox1.Width, PictureBox1.Height) G = Graphics.FromImage(BG) End Sub Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown IsMouseDown = True P_Start = e.Location End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If IsMouseDown Then G.Clear(Color.Transparent) If e.X - P_Start.X > 0 Then If e.Y - P_Start.Y > 0 Then G.DrawRectangle(New Pen(Color.Pink, 2), _ New Rectangle( _ P_Start.X, P_Start.Y, e.X - P_Start.X, e.Y - P_Start.Y)) Else G.DrawRectangle(New Pen(Color.Pink, 2), _ New Rectangle(

準備 .Net Framework 3.0 開發環境

相信大家多多少少都已經看過Windows Vista絢麗的使用者介面,現在我們可以利用VS2005(當然VS2008也可以)加上.Net framework 3.0來開發擁有新一代的使用者介面(經驗)的應用程式;在這之前我們要先準備好我們的開發環境,下面是一些相關資源的整理 首先是作業系統的部分,.Net frmaework 3.0 支援的作業系統是下面這些 Longhorn (Windows Code Name) Windows Server 2003 Service Pack 1 Windows Vista Windows XP Service Pack 2 接下來是相關的套件(這裡以VS2005為主要開發工具來說明) .NET Framework 3.0 版本命名與部署 Q&A Microsoft .NET Framework 3.0 可轉散發套件 Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Components Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation) - 繁體中文 Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP (en) 附帶一提,第一次看到.Net frmaework 3.0的朋友可能會覺得"哇!怎麼那麼快,2.0都才剛開始用而已..",請不用太擔心,3.0還是架構在2.0之上,新加入的項目有下面這些 Windows Communication Foundation(WCF) Windows Presentation Founfation(WPF) Windows Workflow Foundation(WF) Windows CardSpace 如果您想知道更深入的細節記得看上面提到的 Q&A 喔

如何防止重複執行程式

原文位置: http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1835300&SiteID=14 Question: 我的環境是: WinXP pro + Office XP + VS.net 2005 我的程式有設定為單一執行個體,我希望如果使用者連續執行程式兩次時,只在第一次執行時出現Msgbox("Start Running"),我將下面的程式加入MDI母表單中 Public Sub Me_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup MsgBox("Start Running") End Sub Public Event Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) 可是執行時並沒有作用,請問我要如何才能做到這樣的功能?? Answer: 您可以在Form_Load加入您想要加入的訊息就可以了; 另外補充一下,如果您在專案屬性中把"建立單一執行個體選項"勾選的話,執行第二次的時候會自動將焦點轉移到第一次執行的程式;如果不用這個方式去做的話,下面有另外一個方式可以參考看看 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ''防止重複執行 If PrevInstance() Then MessageBox.Show("程式執行中") Application.Exit() Exit Sub End If MessageBox.Show("Load") End Sub Public Function PrevInstance() As

ReportViewer匯出PDF檔發生錯誤

原文位置如下 http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1547412&SiteID=14 主要這是VS Debug Mode的問題,直接執行你的執行檔就可以執行了 節錄部分的原文如下 這是已知的問題,重現步驟如下: Create a new Windows Application Project Create a new Report Add one Textbox control to the Report and type a Chinese text in the Textbox. Add ReportViewer control to Form1 and set its report to the one created in step 3 (no need to set the data sources). Run the application and attempt to export the report to PDF. 此錯誤僅會在 Debug mode 下發生,Release mode 下執行便一切正常, 此問題將在下一個版本進行修正