2011年9月29日 星期四

圖片定時自動輪播

使用元件:
1.PictureBox
2.Timer
3.using System.IO; //用來做計算檔案數量 話不多說,直接放 Source...
public partial class Form1 : Form
{
    public Form1()
    {
         InitializeComponent();
     }
     int i=1,iCount;
     string sCoount;
     private void Form1_Load(object sender, EventArgs e)
    {
        DirectoryInfo di = new DirectoryInfo(@"D:\CSharp_WindowsForm\Lab1\Photos"); //指定目錄
        sCoount = di.GetFiles("*.jpg").Length.ToString(); //取得JPG圖檔數量
        iCount = Convert.ToInt32(sCoount); //轉成整數
     }
   
   private void timer1_Tick(object sender, EventArgs e)
   {
        if (i  <=  iCount) //依序取圖檔代號、帶入PictureBox
       {
            getphoto(Convert.ToString(i)); i++;
       }
       if (i > iCount) //若筆數已滿、回到第一筆
       {
            i = 1;
        }
    }
    private void getphoto(string count)
    {
     pictureBox1.Image = Image.FromFile( "D:\\CSharp_WindowsForm\\Lab1\\Photos\\" + count + ".jpg");
    }
}

2011年9月16日 星期五

程式啟動後顯示於右下角、不會在工作列

程式啟動後顯示於右下角、不會顯示在工作列,譬如防毒程式
步驟:
1.新增原件:notifyIcon1
1.1 屬性 Icon 放入ico檔
1.2 屬性 Text 放入要顯示的文字,當滑鼠移到這邊時出現的文字訊息
2.Form Loack 事件加入:
private void Form1_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized; //最小化
}
3.程式啟動後,此Icon點2下開啟程式畫面:
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized) // 目前視窗是否為最小化
{
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
}

從ButtonClick開啟新的Form

1.新增一個Form2 2.在ButtonClock事件裡面加: Form2 FM2 = new Form2(); FM2.FM1 = this; FM2.ShowDialog(); 3.Form2臉面宣告 public Form1 FM1 = null;

2011年9月11日 星期日

檢查Service 狀態,若service停止則重新啟動

//檢查傳入的Service 狀態,若service停止則重新啟動 private void StartService(string s) { try { ServiceController sc = new ServiceController(s); // if service is stopped, start it if (sc.Status.Equals(ServiceControllerStatus.Stopped)) { // start the service sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running); } else { MessageBox.Show(sc.Status.ToString()); } } catch (Exception e) { MessageBox.Show(e.Message.ToString()); } } 若因系統問題,service無法啟動,那WaitFoeStatus會等多久?

2011年9月5日 星期一

將ComboBox崁入DataGridView



//=== 連接 SQL ===
                conn.ConnectionString = "Server=.\\SQLEXPRESS ;Database=Northwind;Trusted_Connection=True;";
                conn.Open();
                SqlCommand cmd=new SqlCommand ("select CategoryName from Categories ", conn);
                SqlDataReader dr= cmd.ExecuteReader ();
               
//=== 將欄位資料寫入comboBox ===
                while(dr.Read ())
                {
                    comboBox1.Items .Add (dr["CategoryName"].ToString ());
                }
                dr.Close();

//=== 將欄位資料寫入DataGridView 裡面的 ComboBox ===
                DataGridViewComboBoxColumn gdcom = new DataGridViewComboBoxColumn() ;
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    gdcom.Items.Add(dr["CategoryName"].ToString());
                }
                dataGridView1.Columns.Add(gdcom);