標籤:winform style blog http color 使用 os io
一、MDI表單的設計
1.MDI簡介
MDI(Multiple Document Interface)就是所謂的多重文件介面,與此對應就有單一文件介面 (SDI), 它是微軟公司從Windows 2.0下的Microsoft Excel試算表程式開始引入的,Excel試算表使用者有時需要同時操作多份表格,MDI正好為這種操作多表格提供了很大的方便,於是就產生了MDI程式
2.:
如所示,多表單嵌套,其中一個是父表單,其條是子表單。
橫向排列下面的表單:
縱向排列下面的表單:
關閉全部子表單:
3.實現過程
1)、建立一個window表單程式
2)建立4個form
3)、後端實現代碼
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace mdi設計{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void 顯示子表單ToolStripMenuItem_Click(object sender, EventArgs e) { Form f2 = new Form2(); f2.MdiParent = this;//指定其mdi父表單 f2.Show(); Form f3 = new Form3(); f3.MdiParent = this; f3.Show(); Form f4 = new Form4(); f4.Show(); f4.MdiParent = this; } private void 橫向排列ToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileHorizontal); } private void 縱向排列ToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileVertical); } private void 關閉全部表單ToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form f in this.MdiChildren) { f.Close(); } } }}
全部源碼實現:https://github.com/amosli/CSharp/tree/mdi
其中菜單選項用的是MenuStrip控制項,其使用也是非常簡單方便的,如下所示:
二、MenuStrip控制項
建立一個MenuStrip控制項,然後寫入名稱即可,雙擊可以定義其事件,如上面的橫向排列和縱向排列。
三、PictureBox控制項和Timer控制項
1.先看:
2.實現過程
建立PictureBox和timer的控制項
為了實現PictureBox控制項的相對大小,這裡要注意更改Anchor布局為全部勾選!
設定圖片顯示的格式:
【timer控制項】間隔時間設定:
間隔執行的事件:
3.後台實現代碼
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace PictureBox控制項學習{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// timer更改時間 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer1_Tick(object sender, EventArgs e) { lbTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } public static String ImgDirPath = @"C:\work\img"; String[] imgPaths = Directory.GetFiles(ImgDirPath, "*.jpg"); public static int ImgNum = 0; /// <summary> /// 實現上一頁按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPrevious_Click(object sender, EventArgs e) { ImgNum--; if (ImgNum < 0) { ImgNum = imgPaths.Length-1; } pboGirls.ImageLocation = imgPaths[ImgNum]; } /// <summary> /// 實現下一頁按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNext_Click(object sender, EventArgs e) { ImgNum++; if (ImgNum >= imgPaths.Length) { ImgNum = 0; } pboGirls.ImageLocation = imgPaths[ImgNum]; } /// <summary> /// 隨機瀏覽 /// </summary> Random rnd = new Random(); private void button1_Click(object sender, EventArgs e) { pboGirls.ImageLocation = imgPaths[rnd.Next(imgPaths.Length)]; } }}
全部源碼:https://github.com/amosli/CSharp/tree/picturebox