2015年4月15日 星期三

[VB]使用者控制項屬性可以用陣列

本處實做一個燈號使用者控制項,狀態數量由屬性"狀態數量"設定,
,不同狀態燈號圖片由上圖狀態圖示插入。

CODE:

Public Class PilotLight

    Dim stateNum As UInteger = 2  '指示燈狀態數量
    Dim statePIC As Image() = New Image(8) {} '該狀態圖示(狀態0開始)
    Dim pic_sizemode As PictureBoxSizeMode = PictureBoxSizeMode.StretchImage '圖效果
    Dim uniqeID As String               '物件獨特ID
    Dim state As UInteger = 0             '目前燈狀態
  ............................................

    Sub New()

        '使指示燈圖拉長或縮小以符合大小
        InitializeComponent()
        PictureBox1.SizeMode = pic_sizemode
        PictureBox1.Image = statePIC(state)
        ' Add any initialization after the InitializeComponent() call.

    End Sub
    Property 狀態數量 As UInteger  '最多9組 最少2組
        Get
            Return stateNum
        End Get
        Set(value As UInteger)
            If value > 10 Then
                stateNum = 9
            ElseIf value < 2 Then
                stateNum = 2
            Else
                stateNum = value
            End If
        End Set
    End Property
    Property 狀態圖示 As Image()
        Get
            Return statePIC
        End Get
        Set(value As Image())
            statePIC = value
        End Set
    End Property

.............................下略

[VB問題]並未將物件參考設定為物件的執行個體



原錯誤CODE:

Public Class PilotLight

    Dim stateNum As UInteger = 2  '指示燈狀態數量
    Dim statePIC As Image()           '該狀態圖示(狀態0開始)
        ==>改Dim statePIC As Image() = New Image(9) {}
    Dim pic_sizemode As PictureBoxSizeMode = PictureBoxSizeMode.StretchImage '圖效果
    Dim uniqeID As String               '物件獨特ID
    Dim state As UInteger = 0             '目前燈狀態
.....................

    Sub New()

        '使指示燈圖拉長或縮小以符合大小
        InitializeComponent()
        PictureBox1.SizeMode = pic_sizemode
        ' PictureBox1.Image = statePIC(state)
        ' Add any initialization after the InitializeComponent() call.

    End Sub
    Property 狀態數量 As UInteger  '最多9組 最少2組
        Get
            Return stateNum
        End Get
        Set(value As UInteger)
            If value > 10 Then
                stateNum = 9
            ElseIf value < 2 Then
                stateNum = 2
            Else
                stateNum = value
            End If
        End Set
    End Property
    Property 狀態圖示0 As Image
        Get
            Return statePIC(0)
        End Get
        Set(value As Image)
            statePIC(0) = value
        End Set
    End Property
    Property 狀態圖示1 As Image
        Get
            Return statePIC(1)
        End Get
        Set(value As Image)
            statePIC(1) = value
        End Set
    End Property
    Property 狀態圖示2 As Image
        Get
            Return statePIC(2)
        End Get
        Set(value As Image)
            statePIC(2) = value
        End Set
    End Property
    Property 狀態圖示3 As Image
        Get
            Return statePIC(3)
        End Get
        Set(value As Image)
            statePIC(3) = value
        End Set
    End Property
    Property 狀態圖示4 As Image
        Get
            Return statePIC(4)
        End Get
        Set(value As Image)
            statePIC(4) = value
        End Set
    End Property
    Property 狀態圖示5 As Image
        Get
            Return statePIC(5)
        End Get
        Set(value As Image)
            statePIC(5) = value
        End Set
    End Property
    Property 狀態圖示6 As Image
        Get
            Return statePIC(6)
        End Get
        Set(value As Image)
            statePIC(6) = value
        End Set
    End Property
    Property 狀態圖示7 As Image
        Get
            Return statePIC(7)
        End Get
        Set(value As Image)
            statePIC(7) = value
        End Set
    End Property
    Property 狀態圖示8 As Image
        Get
            Return statePIC(8)
        End Get
        Set(value As Image)
            statePIC(8) = value
        End Set
    End Property
................................................................



簡化寫法參考使用者控制項屬性可以用陣列!

2014年10月14日 星期二

[VB.net]2013 Microsoft.ACE.OLEDB.12.0 錯誤解決

環境:.net 2013 使用Office 2013Access資料庫(.accdb)


1.關閉.net程式,去下載:

2007 Office system 驅動程式


2.安裝


3.再打開VS 2013,到 「檢視」/「伺服器總管」/ 資料連接 右鍵



4.在資料庫來源選OLE DB,跟資料庫檔名去選自己要聯的資料庫,沒設帳密直接按確定。


5.聯結成功:出現資料庫訊息




2014年8月6日 星期三

[VB教學]強迫換行vbNewLine/vbCrLf

文字在TextBox遇到邊界會自動換行,但是如果想提前換行
可以用vbNewLine或vbCrLf來強制換行

2013年5月20日 星期一

[codeigniter]Views筆記

若再網頁中要重覆使用某些HTML語法時,可將這些HTML分別存成客別的檔案,也就是Views,再讓Controls呼叫。另外View裡面也可以匯入View

1.View檔案必須放入application/views/ 目錄底下

2.在Controller中載入View的語法
$this->load->view('view_filename');
 注意:view_filename是view的檔案名稱後面不用加.php,除非你的檔名 
 不是php.

3.如果你建立了一個View為123.php ,你想將他匯入名為ABC.php的Controller,可用以下語法
<?php
class ABC extends CI_Controller {
function index()
{
$this->load->view('
123');
}
}
?>
注意:function index(),是在預設執行的函式, [yourwebsite]/index.php/ABC/  該網址只有指定執行ABC.php ,但並沒有說要執行哪個函式時,會預設執行index()
       $this->load->view('folder_name/file_name');
       也可以把View放進子目錄

4.在Controller設定該網頁顯示之Title
       $data['page_title'] = 'Your title';
5.載入的有動態變數要顯示
       $this->load->view('view_name', $data);
       $data可以是Array
範例
<?php
class Blog extends CI_Controller {
function index()
{
$data['title'] = "My Real Title"; $data['heading'] = "My Real Heading";
$this->load->view('blogview', $data);
}
}
?>
<html>
<head>
<title><?php echo $title;?></title></head>
<body>
<h1><?php echo $heading;?></h1></body>
</html>