2012年1月10日 星期二

VB.net INI 讀寫

參考
http://chengchao.blogspot.com/2008/08/vbnet-ini.html


' vb.net 中读写 ini 文件和 vb6 中的做法是一致的,也要使用 Windows Api 的方法
' 唯一要注意的是:在 vb.net 中,api 声明中的 Long 型要改为 int32 类型。

Public Class Form1
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, ByVal lpdefault As String, _
    ByVal lpretrunedstring As String, ByVal nSize As Int32, _
    ByVal lpFilename As String) As Int32


    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, ByVal lpString As String, _
    ByVal lpFilename As String) As Int32






    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WritePrivateProfileString("Section", "Key", "Value", Application.StartupPath + "\a.ini")


    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim strIni As String
        strIni = New String(" ", 100)
        GetPrivateProfileString("Section", "Key", "", strIni, 100, Application.StartupPath + "\a.ini")
        MsgBox(strIni)
    End Sub
End Class

2012年1月9日 星期一

Vb.net 2008 Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上

 windows 7 專業版 X64
  vb.net  2008
  framework3.5




難得複習 一下 access 結果 顯示電腦
Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上
上網查了一下 VB 論壇


http://social.msdn.microsoft.com/forums/zh-TW/238/thread/c55decf8-53a4-4c82-8aa3-d9f3e6c627c0


Microsoft Jet 不支援 64 位元的版本,你的應用程式不能編譯為 64 位元的應用程式,而必須編譯為 32 位元的應用程式,才可以使用 Microsoft Jet,你可以看看:


不過還是找不到,最後自己摸了一下
專案==> project name + 屬性 == > 進階編譯選項===> 目標 CPU 選擇  X86(原本是 ANYCPU)
打完收工,謝謝


2012年1月8日 星期日

VB.net 基本的 對話框 字體 顏色 開啟檔案


Public Class Form1

    Private Sub btn_FontDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_FontDialog.Click
        FontDialog1.ShowColor = True
        FontDialog1.ShowApply = True
        '套用的功能就是 視窗不會關閉 會產生 apply的事件
        '這樣使用者就不會因為按下確定(視窗會關閉)以後 還要在重新 showdailog 一次
        '算是體貼使用者設計
        FontDialog1.ShowDialog()
    End Sub

    Private Sub FontDialog1_Apply(ByVal sender As Object, ByVal e As System.EventArgs) Handles FontDialog1.Apply
        Label1.Font = FontDialog1.Font
        Label1.ForeColor = FontDialog1.Color
    End Sub

    Private Sub btn_ColorDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ColorDialog.Click
        ColorDialog1.FullOpen = True '展開所有功能
        ColorDialog1.ShowDialog()
        Label2.BackColor = ColorDialog1.Color
    End Sub

    Private Sub btn_OpenFileDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_OpenFileDialog.Click
        OpenFileDialog1.Reset()
        OpenFileDialog1.Multiselect = True
        OpenFileDialog1.Title = "來選擇一個或多個檔案吧"
        OpenFileDialog1.FileName = Application.StartupPath + "\test.text"
        OpenFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"

        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            ListBox1.Items.Clear()

            For Each myfilename In OpenFileDialog1.FileNames
                ListBox1.Items.Add(myfilename)
            Next
        End If

    End Sub

End Class

2011年12月28日 星期三

Listbox 單選 多選





MSDN 參考


ListBox 三種模式

1.SelectionMode.One
單選
2.SelectionMode.MultiSimple

當屬性設為 SelectionMode.MultiSimple,按一下滑鼠或按下空白鍵可選取或取消選取清單中的項目。


3.SelectionMode.MultiExtended
SelectionMode 屬性設為 SelectionMode.MultiExtended 時,按下 SHIFT 和按一下滑鼠或者按下 SHIFT 和其中一個方向鍵 (向上鍵、向下鍵、向左鍵和向右鍵) 會將選取範圍由之前選取的項目擴展至目前的項目。按下 CTRL 和按一下滑鼠可選取或取消選取清單中的項目。


多選模式的時候利用  listBox.GetSelected(i) =True or False     判斷是否有被選取
也可以直接利用          listBox1.SetSelected(i,  True or False )   設定是否要選取

ListBox1.TopIndex

取得或設定 ListBox 中第一個可見項目的索引。


檔案下載

VB.NET WithEvents 和 Handles 子句


"如果物件是區域物建變數,那就要用 addhandler..., addressOf..."
"如果是全域物件變數,可以改用WithEvents" :

自己練習了一個利用Timer 模擬水庫上升 下降 產生 Event 
檔案下載

2011年12月22日 星期四

XML檔 中文的問題

第一次做XML檔 結果發生錯誤,因為用筆記本另存新檔,雖然存成XXX.xml,但是沒有選擇編碼,所以執行錯誤,要改成 uft-8存檔不要存成ANSI


<?xml version="1.0" encoding="utf-8"?>
<person>
  <name>帥哥銘</name>
<sex>男</sex>
<tel>0911234567</tel>
</person>


2011年12月16日 星期五

VB.NET 多型的概念

沒有繼承就沒有多型,這是必然的關係 

               動物                       
               /       \                      
            貓         狗                 
                     /         \              
              吉娃娃    狼狗       

這就是多型   ,
以下的檔案使用了
Me          (覆寫父類別)
MyClass  (使用父類別)
多型(Polymorphism)多載(Overloading)  一點關係都沒有

多載(Overloading)相同名稱的方法 參數不一樣就是多載   
我們最常用的就是 messagebox.show(....)
建構子也可以多載

檔案下載