C#實現圖片輪播功能的示例代碼
實踐過程
效果
代碼
public partial class Form1 : Form { public Form1() { InitializeComponent(); } public bool Pflag; int flag = 0; FileSystemInfo[] fsinfo; ArrayList al = new ArrayList(); int MM = 0; private void splitContainer2_Panel2_Paint(object sender, PaintEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { cbbShowType.SelectedIndex = 0; } private void button1_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { al.Clear(); listBox1.Items.Clear(); txtPicPath.Text = folderBrowserDialog1.SelectedPath; DirectoryInfo di = new DirectoryInfo(txtPicPath.Text); fsinfo = di.GetFileSystemInfos(); for (int i = 0; i < fsinfo.Length; i++) { string filename = fsinfo[i].ToString(); string filetype = filename.Substring(filename.LastIndexOf(".") + 1, filename.Length - filename.LastIndexOf(".") - 1); filetype = filetype.ToLower(); if (filetype == "jpeg" || filetype == "jpg" || filetype == "png" || filetype == "gif" || filetype == "bmp") { listBox1.Items.Add(fsinfo[i].ToString()); al.Add(fsinfo[i].ToString()); flag++; } } listBox1.SetSelected(0, true); listBox1.Focus(); tssltotel.Text = "共有" + flag + "張圖片"; Pflag = true; } } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { string picpath = txtPicPath.Text + "\\" + listBox1.SelectedItem.ToString(); tsslPath.Text = "|當前第" + Convert.ToString(listBox1.SelectedIndex + 1) + "張圖片|圖片位置:" + picpath; pictureBox1.Image = Image.FromFile(picpath); MM = listBox1.SelectedIndex; } private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); txtPicPath.Text = ""; tssltotel.Text = ""; tsslPath.Text = ""; pictureBox1.Image = null; Pflag = false; timer1.Stop(); button5.Enabled = true; } private void button5_Click(object sender, EventArgs e) { if (Pflag) { if (txtTime.Text != "") { if (cbbShowType.SelectedIndex == 1) { timer1.Interval = int.Parse(txtTime.Text.Trim()); timer1.Start(); button5.Enabled = false; } else { Form2 frm2 = new Form2(); frm2.fsi = al; frm2.picPath = txtPicPath.Text.Trim(); frm2.mytimer = int.Parse(txtTime.Text.Trim()); frm2.ShowDialog(); } } } } private void timer1_Tick(object sender, EventArgs e) { if (MM < listBox1.Items.Count) { if (txtPicPath.Text.Trim().Length == 3) { pictureBox1.Image = Image.FromFile(txtPicPath.Text.Trim() + listBox1.Items[MM].ToString()); listBox1.SetSelected(MM, true); } else { pictureBox1.Image = Image.FromFile(txtPicPath.Text.Trim() + "\\" + listBox1.Items[MM].ToString()); listBox1.SetSelected(MM, true); } } MM++; } private void txtTime_KeyPress(object sender, KeyPressEventArgs e) { if (!(e.KeyChar <= '9' && e.KeyChar >= '0') && e.KeyChar != '\r' && e.KeyChar != '\b') { e.Handled = true; } } private void txtTime_KeyDown(object sender, KeyEventArgs e) { if (txtTime.Text != "") { if (txtTime.Text.Trim().Substring(0, 1) == "0") { txtTime.Text = txtTime.Text.Substring(1, txtTime.Text.Length - 1); } } } private void button6_Click(object sender, EventArgs e) { timer1.Stop(); button5.Enabled = true; } }
public partial class Form2 : Form { public Form2() { InitializeComponent(); } public ArrayList fsi=new ArrayList(); public int mytimer; public string picPath; private void pictureBox1_Click(object sender, EventArgs e) { timer1.Stop(); this.Close(); } private void pictureBox2_Click(object sender, EventArgs e) { } private void Form2_Load(object sender, EventArgs e) { timer1.Interval = mytimer; timer1.Start(); } int MM = 0; private void timer1_Tick(object sender, EventArgs e) { if (MM <fsi.Count) { if (picPath.Length == 3) { pictureBox2.Image = Image.FromFile(picPath +fsi[MM].ToString()); } else { pictureBox2.Image = Image.FromFile(picPath + "\\" + fsi[MM].ToString()); } } MM++; } }
partial class Form1 { /// <summary> /// 必需的設計器變量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的資源。 /// </summary> /// <param name="disposing">如果應釋放托管資源,為 true;否則為 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗體設計器生成的代碼 /// <summary> /// 設計器支持所需的方法 - 不要 /// 使用代碼編輯器修改此方法的內容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.tssltotel = new System.Windows.Forms.ToolStripStatusLabel(); this.tsslPath = new System.Windows.Forms.ToolStripStatusLabel(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.listBox1 = new System.Windows.Forms.ListBox(); this.button6 = new System.Windows.Forms.Button(); this.button5 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.cbbShowType = new System.Windows.Forms.ComboBox(); this.txtTime = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.txtPicPath = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.statusStrip1.SuspendLayout(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); this.splitContainer1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // statusStrip1 // this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tssltotel, this.tsslPath}); this.statusStrip1.Location = new System.Drawing.Point(0, 398); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(616, 22); this.statusStrip1.TabIndex = 0; this.statusStrip1.Text = "statusStrip1"; // // tssltotel // this.tssltotel.BackColor = System.Drawing.Color.Transparent; this.tssltotel.Name = "tssltotel"; this.tssltotel.Size = new System.Drawing.Size(0, 17); // // tsslPath // this.tsslPath.BackColor = System.Drawing.Color.Transparent; this.tsslPath.Name = "tsslPath"; this.tsslPath.Size = new System.Drawing.Size(0, 17); // // splitContainer1 // this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer1.Location = new System.Drawing.Point(0, 0); this.splitContainer1.Name = "splitContainer1"; // // splitContainer1.Panel1 // this.splitContainer1.Panel1.Controls.Add(this.listBox1); this.splitContainer1.Panel1.Controls.Add(this.button6); this.splitContainer1.Panel1.Controls.Add(this.button5); this.splitContainer1.Panel1.Controls.Add(this.button3); this.splitContainer1.Panel1.Controls.Add(this.cbbShowType); this.splitContainer1.Panel1.Controls.Add(this.txtTime); this.splitContainer1.Panel1.Controls.Add(this.label2); this.splitContainer1.Panel1.Controls.Add(this.button1); this.splitContainer1.Panel1.Controls.Add(this.txtPicPath); this.splitContainer1.Panel1.Controls.Add(this.label1); // // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.pictureBox1); this.splitContainer1.Size = new System.Drawing.Size(616, 398); this.splitContainer1.SplitterDistance = 205; this.splitContainer1.SplitterWidth = 1; this.splitContainer1.TabIndex = 1; // // listBox1 // this.listBox1.FormattingEnabled = true; this.listBox1.ItemHeight = 12; this.listBox1.Location = new System.Drawing.Point(5, 148); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(195, 244); this.listBox1.TabIndex = 0; this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged); // // button6 // this.button6.Location = new System.Drawing.Point(70, 119); this.button6.Name = "button6"; this.button6.Size = new System.Drawing.Size(63, 23); this.button6.TabIndex = 9; this.button6.Text = "停止播放"; this.button6.UseVisualStyleBackColor = true; this.button6.Click += new System.EventHandler(this.button6_Click); // // button5 // this.button5.Location = new System.Drawing.Point(5, 119); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(63, 23); this.button5.TabIndex = 8; this.button5.Text = "開始播放"; this.button5.UseVisualStyleBackColor = true; this.button5.Click += new System.EventHandler(this.button5_Click); // // button3 // this.button3.Location = new System.Drawing.Point(135, 119); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(63, 23); this.button3.TabIndex = 6; this.button3.Text = "清除數據"; this.button3.UseVisualStyleBackColor = true; this.button3.Click += new System.EventHandler(this.button3_Click); // // cbbShowType // this.cbbShowType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbbShowType.FormattingEnabled = true; this.cbbShowType.Items.AddRange(new object[] { "原圖大小顯示", "適應窗口顯示"}); this.cbbShowType.Location = new System.Drawing.Point(5, 93); this.cbbShowType.Name = "cbbShowType"; this.cbbShowType.Size = new System.Drawing.Size(195, 20); this.cbbShowType.TabIndex = 0; // // txtTime // this.txtTime.Location = new System.Drawing.Point(5, 63); this.txtTime.Name = "txtTime"; this.txtTime.Size = new System.Drawing.Size(195, 21); this.txtTime.TabIndex = 4; this.txtTime.Text = "1000"; this.txtTime.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtTime_KeyDown); this.txtTime.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtTime_KeyPress); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(3, 48); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(89, 12); this.label2.TabIndex = 3; this.label2.Text = "暫停時間(毫秒)"; // // button1 // this.button1.Location = new System.Drawing.Point(143, 20); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(57, 23); this.button1.TabIndex = 2; this.button1.Text = "瀏覽..."; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // txtPicPath // this.txtPicPath.BackColor = System.Drawing.Color.White; this.txtPicPath.Location = new System.Drawing.Point(5, 21); this.txtPicPath.Name = "txtPicPath"; this.txtPicPath.ReadOnly = true; this.txtPicPath.Size = new System.Drawing.Size(137, 21); this.txtPicPath.TabIndex = 1; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(3, 6); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(65, 12); this.label1.TabIndex = 0; this.label1.Text = "圖片目錄:"; // // pictureBox1 // this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox1.Location = new System.Drawing.Point(0, 0); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(406, 394); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // timer1 // this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.WhiteSmoke; this.ClientSize = new System.Drawing.Size(616, 420); this.Controls.Add(this.splitContainer1); this.Controls.Add(this.statusStrip1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "圖片自動播放器"; this.Load += new System.EventHandler(this.Form1_Load); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); this.splitContainer1.Panel1.ResumeLayout(false); this.splitContainer1.Panel1.PerformLayout(); this.splitContainer1.Panel2.ResumeLayout(false); this.splitContainer1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.SplitContainer splitContainer1; private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox txtPicPath; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox txtTime; private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.Button button6; private System.Windows.Forms.Button button5; private System.Windows.Forms.Button button3; private System.Windows.Forms.ComboBox cbbShowType; private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; private System.Windows.Forms.ToolStripStatusLabel tsslPath; private System.Windows.Forms.ToolStripStatusLabel tssltotel; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Timer timer1; }
partial class Form2 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.pictureBox2 = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Right; this.pictureBox1.Image = global::PicPlay.Properties.Resources.圖標__57_; this.pictureBox1.Location = new System.Drawing.Point(686, 0); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(27, 451); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // timer1 // this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // pictureBox2 // this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox2.Location = new System.Drawing.Point(0, 0); this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Size = new System.Drawing.Size(686, 451); this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox2.TabIndex = 1; this.pictureBox2.TabStop = false; this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click); // // Form2 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Black; this.ClientSize = new System.Drawing.Size(713, 451); this.Controls.Add(this.pictureBox2); this.Controls.Add(this.pictureBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "Form2"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Form2"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.Load += new System.EventHandler(this.Form2_Load); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.PictureBox pictureBox2; }
到此這篇關於C#實現圖片輪播功能的示例代碼的文章就介紹到這瞭,更多相關C#圖片輪播內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet
推薦閱讀:
- 基於C#實現鼠標設置功能
- C#實現數字轉換漢字的示例詳解
- C# PictureBox圖片控件實現圖片交換
- C#實現目錄跳轉(TreeView和SplitContainer)的示例代碼
- C#利用TreeView控件實現目錄跳轉