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
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
1)treeView1.SelectedNode.Text;獲取選中項文字
2)treeView1.SelectedNode.Nodes.Add(textBox1.Text);向選中的節點子集新增節點。
3)treeView1.ExpandAll();展開所有子節點
treeView1.CollapseAll();摺疊所有子節點
4) treeView1.SelectedNode.Toggle();切換該節點集的狀態(展開,或者摺疊)
treeView1.SelectedNode.Collapse();只摺疊該節點集
treeView1.SelectedNode.ExpandAll();展開該節點集所有節點
treeView1.SelectedNode.Expand();展開該節點集(不展開孫子集)
需要先判斷SelectedNode是否為空。
5) treeView1.SelectedNode.Remove();刪除選中節點
6)在包含checkboxes的treeView中,可以設定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設定選中狀態(值為true或false)也可以直接設定checkState屬性。(unchecked,checked,indeterminate(子項沒全部選中))
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元件配合使用,主要有單擊,雙擊改變程式最大化最小化等事件等。