1. 程式人生 > >Winform基礎入門(二)

Winform基礎入門(二)

ltreeView控制元件

l程式碼生成控制元件

l主選單與上下文選單

l托盤的實現

1.textBox1.Update();使桌面快速重繪

Stopwatch watch =new Stopwatch();

watch.Start();

for (int i = 0; i < 100; i++)

{

textBox1.Text = i.ToString();

textBox1.Update();

}

watch.Stop();

MessageBox.Show(string.Format("耗時:{0}", watch.Elapsed.Milliseconds));

可通過建立Stopwatch

的物件,呼叫startstop方法檢視消耗時間。

2.string path =Application.StartupPath + "\\Sample Pictures\\" + i.ToString() + ".jpg";//獲取圖片路徑

Application.StartupPath//靜態屬性獲取啟動了應用程式的可執行檔案的路徑,不包括可執行檔案的名稱。

3.y表示年M表示月d表示日HH表示24小時進位制 m表示分 s表示秒

DateTime.Now.ToString("mm-ss");獲得當前分和秒

DateTime.Now.ToString("yyyy-MM");獲得當前年月

以此類推。。。

4.Timer元件

Timer元件(常用於有時間間隔發生事件的程式,如切換圖片的螢幕保護)

設定interval來設定間隔時間(要求enabled設定為true

5.treeView控制元件(樹結構)

該控制元件用於新增分層集合,每一項都是一個節點(Node),它是一個TreeNode類的物件。

   

屬性:

Nodes用於設定每個節點,每個節點也都有該屬性

HideSelection當控制元件沒有焦點時,從選中節點處移除突出顯示。值設為false時,移除焦點,選中項也會有灰色陰影。

SelectedNode獲取選中項,不選中時值為null,呼叫treeView控制元件的selectedNode

屬性。

1treeView1.SelectedNode.Text獲取選中項文字

2treeView1.SelectedNode.Nodes.Add(textBox1.Text);向選中的節點子集新增節點。

3treeView1.ExpandAll();展開所有子節點

treeView1.CollapseAll();摺疊所有子節點

4 treeView1.SelectedNode.Toggle();切換該節點集的狀態(展開,或者摺疊)

treeView1.SelectedNode.Collapse();只摺疊該節點集

treeView1.SelectedNode.ExpandAll();展開該節點集所有節點

treeView1.SelectedNode.Expand();展開該節點集(不展開孫子集)

需要先判斷SelectedNode是否為空。

5 treeView1.SelectedNode.Remove();刪除選中節點

6在包含checkboxestreeView中,可以設定afterchecked事件,讓子節點被選中時,同時選中它的所有子節點。

private void treeView1_AfterCheck(object sender,TreeViewEventArgs e)

{

foreach (TreeNode tnin e.Node.Nodes)

{

tn.Checked = e.Node.Checked;

}

}

  7)設定樹結構的節點圖表時,需要關聯imagelist元件。

6.其他的控制元件屬性

checkBox控制元件

Checked設定選中狀態(值為truefalse)也可以直接設定checkState屬性。(uncheckedcheckedindeterminate(子項沒全部選中))

GroupBox控制元件

分組控制元件

RadioButton控制元件

單選按鈕

設定一組單選按鈕時,用groupbox控制元件對其進行分組。

ProgressBar控制元件

進度條

屬性 Maximum設定進度條的最大值,Minimum設定進度條的最小值。Value表示當前進度條的位置。

運算時,通過對Value的賦值來使進度條緩慢行進,但是要注意,運算表示式中要有double型別參與,因為int型別的數字運算,會讓Value的值一直為零。參如下例子:

void GetAnswer()

{

for (int i = 0; i <= 50000; i++)

{

txtShow.Text = i.ToString();

Application.DoEvents();

progressBar1.Value =(int)( (1.0*i / 50000) * 100);//先用double型別運算,再用int強轉

}

}

private void button1_Click(object sender,EventArgs e)

{

Thread threadFirst = new Thread(GetAnswer);

threadFirst.Start();

}

dateTimePicter 控制元件

日期選擇。

hScorllBar 水平滾動條

vScorllbar 垂直滾動條

ToolTip滑鼠指標移動到控制元件上時顯示的資訊。

TrackBar 單線滾動條

WebBrowser 瀏覽器控制元件

TabControl選項卡控制元件

7.程式碼生成控制元件

Winform中的每個控制元件都可以看做類的物件,所以我們可以通過例項類來產生控制元件,甚至包括它的各種事件(以委託的方式傳遞方法,形成事件)。

例如://窗體載入時生成按鈕和事件

private void Form1_Load(object sender,EventArgs e)

{

for (int i = 0; i < 15; i++)

{

//建立物件

Button btn = newButton();

//給屬性賦值

btn.Name = "btn" + i.ToString();

btn.Text = "按鈕" + (i+1).ToString();

btn.Size = new Size(60, 60);

btn.Location = new Point(50 + i % 5 * 100, 50 + i/5* 110);

this.Controls.Add(btn);

//傳遞委託生成事件

btn.Click +=new EventHandler(MyClick);

}

}

//委託方法

private void MyClick(object sender,EventArgs e)

{

Button btn=(Button)sender;

MessageBox.Show("點選了"+btn.Text);

}

8.主選單與上下文選單

MenuStrip元件主選單

屬性:ShortcutKeys設定每項的快捷鍵

ContextMenuStrip元件上下文選單

為每個控制元件設定上下文選單,都可以設定該控制元件的ContextMenuStrip屬性來選擇。

ToolStrip元件工具欄選單

也可以在工具欄右鍵直接插入標準項。

StatusStrip元件狀態列選單(視窗最下邊)

9.托盤(桌面右下角程式小圖示)

notifyIcon元件contextMenuStrip元件配合使用,主要有單擊,雙擊改變程式最大化最小化等事件等。