c#窗體開發


奇:
常用控件的使用(期間參雜着VS快捷鍵/常用設置)

快捷鍵:引用命名空間:shift+alt+F10

斷點:F9

調試:F5

逐句調試(每行代碼一次跳轉):F11

逐過程調試:F10

重構提取方法:選中要重構的方法  ctrl+r  ctrl+m  輸入方法  確定

新建dll類庫: 解決方案資源管理器--解決方案--右鍵--新建項目--選擇--類庫(.net Framework)會提示是.dll類庫啊,不要選錯了

選中后取名CarHOmeDLL  確定后文件位置如下:

 

引用類庫方式:

 工程引用:好處

 

DLL引用

 

瀏覽找到並選中DLL文件在確定

 

 (紅框)第一個是工程引用第二個是dll引用

 

 

 

組件:
公共控件:

WinForm 窗體
  Button           按鈕
  ComboBox         select下拉列表框    選中它單機三角圖標編輯頁或者在屬性面板的數據Items中添加option(DataSource是數據綁定項)
  Checkbox         復選框
  CheckedListBox   復選框列表(一個組垂直包含個checkbox多選框)
  DateTimePicker   日期時間控件
  GroupBox         分組控件
  Label            標簽
  LinkLabel
  ListBox          多選列表框
  ListView         列表控件(多作為表格展示 先設置編輯列 行為的HeaderStyle:選擇是否能點擊  ;  外觀的View:顯示模式【一般選Details詳細模式來顯示表格】) 
  LinkLabel        超鏈接標簽
  MaskedTextBox
  MonthCalendar
  NotifyIcon       托盤控件
  NumericUpDown    數字輸入框
  PictureBox       圖片框
  ProgressBar      進度條
  RadioButton      單選框
  RichTextBox
  TreeView         樹控件
  Textbox          文本框
  ToolTip          氣泡提示
  webBrowser

容器:

Panel                   面板
SplitContainer          分隔容器
TabControl              選項卡控件(tab頁)
FlowLayoutPanel
GroupBox
tableLayoutPanel

ta'btabControl

//窗體初始化

默認顯示第幾個   
tabControl1.SelectedIndex = 0;
//Alignment: 調節tab顯示在上下左右的位置

菜單和工具欄:

ContextMenuStrip         右鍵菜單
MenuStrip                菜單控件(類似導航)
StatusStrip              狀態欄控件
ToolStrip                工具欄控件
ImageList                圖片集合   ????(4.7版本未找到)
Timer                    時間控件

對話框:

FolderBrowserDialog         文件夾選擇
OpenFileDialog              打開文件
SaveFileDialog              保存文件

數據

Chart
BindingNavigator
BindingSource
DataGridView
DataSet

組件

BackgroundWorker
DirectoryEntry
DirectorySearcher
ErrorProvider
Eventlog
FilesystemWatcher
CHelpProvider
ImageList
MessageQueue
PerformanceCounter
Process
SerialPort
ServiceController
Timer

 

 

 

窗體屬性面板:

布局
--AuteScaleMode               自動縮放模式
--Autoscroll                  自動滾動
--AltoScrollMargin            自動滾動邊距
--AutoScrollMinsize           自動滾動最小尺寸
--AutoSize                    自動大小
--AutoSizeMode                拖動窗口改變大小開關
--Location                    位置
--MaximumSize                 最大尺寸
--MinimumSize                 最小尺寸
--Padding                     是布局還是內邊距?
--Size                        字體大小?
--StartPosition               啟動窗體出現的位置
--Windowstate                 窗口狀態

窗口樣式(WindowStyle)
--ControlBox                  控制按鈕組
--HelpButton                  幫助按鈕
--lcon                        圖標
    -size
--IsMdiContainer              是不是MDI容器
--MainMenuStrip               主菜單條
--MaximizeBox                 窗口最大化
--MinimizeBox                 窗口最小化
--Opacity                     不透明度
--Showlcon                    顯示圖標
--ShowlnTaskbar               在任務欄中顯示
--SizeGripStyle               大小手柄樣式
--TopMost                     是否為最頂層元素
--TransparencyKey             透明色
行為
--AllowDrop                          允許拖放
--AutoValidate                       自動驗證
--ContextMennuStrip                  上下文菜單條
--DoubleBuffered                     雙緩沖
--enabled                            可用
--ImeMode                            輸入法模式
焦點(Focus)
--CausesValidation                   是否觸發驗證
可訪問性(Accessibility)
--AccessibleDescription              可訪問描述
--AccessibleName                     可訪問名稱
--AccessibleRole                     可訪問角色
設計
(Name)                              默認Form1     對應  this.Name = "帝國標簽窗口";  (這個自動生成窗口事件函數名時會取它的值;值_事件名)
language                             語言
Localizable                          本地化 
locked                               鎖定  
數據
--(ApplicationSettings)
    --(PropertyBinding)
    --Location
    --Text
--(DataBindings)                     數據綁定
    --(Advanced)
    --Tag
    --Text
--Tag
外觀(Appearance)
--BackColor                  背景顏色
--Backgroundlmage            背景圖片
--BackgroundImageLayout      背景圖片布局
--Cursor                     光標選擇
--Font
--Name:宋體
--Size
--Unit
--Bold
--GdiChartSet
--GdVerticalFont
--GdiVerticalFont
--Italic
--Strikeout
--Underline --ForeColor --FormBorderStyle 字體邊框樣式 --RightToLeft 從右到左 --RightToLeftLayout 從右到左布局 --Text 窗口標題 對應 this.Text = "帝國cms標簽"; --UseWaitCursor 用戶等待光標 雜項 --AcceptButton 接受按鈕 --CancelButton 取消按鈕 --KeyPreview 鍵預覽 --tooltip1上的ToolTip

 窗體組件屬性面板:

TabIndex   設置按下tab鍵時跳轉的順序 對表單組件特別有用

 

窗體事件:

布局:
DpiChanged
DpiChangedAfterParent
DpiChangedBeforeParent
Layout                      布局
MdichidActivate             MDI 子窗口行為
Move                        移動             在移動控件時發生。(從 Control 繼承。) 
PaddingChanged              邊框更改          在控件空白區更改時發生。(從 Control 繼承。)
Resize                      重置大小          在調整控件大小時發生。(從 Control 繼承。)

操作
Click                 單擊        在單擊控件時發生。(從 Control 繼承。)
Doubleclick           雙擊
MouseCaptureChanged   鼠標捕獲更改  當控件失去鼠標捕獲時發生。(從 Control 繼承。)
MouseClick            鼠標單擊     在鼠標單擊該控件時發生。(從 Control 繼承。)
MouseDoubleClick      鼠標雙擊     當用戶使用鼠標雙擊 RadioButton 控件時發生。
ResizeBegin           重置尺寸開始
ResizeEnd             重置尺寸結束
Scroll                滾動

行為
ChangeUICues                   更改界面提示  在焦點或鍵盤用戶界面 (UI) 提示更改時發生。(從 Control 繼承。)
ControlAdded                   控制已加入   在將新控件添加到 Control.ControlCollection 時發生。(從 Control 繼承。)
ControlRemoved                 控制已移除    在從 Control.ControlCollection 移除控件時發生。(從 Control 繼承。) 
FormClosed                    (點擊X,直接結束進程不會觸發)關閉窗體事件發生在FormClosing之后
FormClosing                   (點擊x,直接結束進程不會觸發)關閉窗體
HelpButtonClicked              幫助按鈕已點擊        
HelpRequested                  幫助已請求
ImeModeChanged                 輸入法模式已更改    當 ImeMode 屬性更改時發生。此事件與此類無關。(從 ButtonBase 繼承。)
InputLanguageChanged           輸入語言已更改
InputLanguageChanging          輸入語言准備更改
Load                           窗體初始化:
執行步驟program.cs的Main方法執行Application.Run(new Form1());然后調用Form1.cs中的Form1->Form1()析構函數中的InitializeComponent(){ this.Load += new System.EventHandler(this.Form1_Load);}最后調用Form1_Load() QueryAccessibilityHelp 查詢訪問幫助 在 AccessibleObject 為輔助功能應用程序提供幫助時發生。(從 Control 繼承。)  Shown 展示 在控件樣式更改時發生。(從 Control 繼承。)  StyleChanged 樣式已更改 系統顏色更改時發生。(從 Control 繼承。)  SystemColorsChanged 系統顏色更改 按鍵
KeyDown 按鍵按下瞬間 KeyPress 按鍵按住 KeyUp 按鍵抬起瞬間 PreviewKeyDown 預覽鍵按下 在焦點位於此控件上的情況下,當有按鍵動作時發生(在 KeyDown 事件之前發生)。(從 Control 繼承。)  焦點 Activated 活動   Deactivate 非活動 Enter 進入 Leave 離開 Validated 已驗證 在控件完成驗證時發生。(從 Control 繼承。) Validating 驗證中 屬性已更改 AutoSizeChanged 當 AutoSize 屬性的值更改時發生。(從 ButtonBase 繼承。)  AutoValidateChanged BackColorChanged 當 BackColor 屬性的值更改時發生。(從 Control 繼承。) BackgroundlmageChanged 當 BackgroundImage 屬性的值更改時發生。(從 Control 繼承。)  BackgroundlmageLayoutChanged 當 BackgroundImageLayout 屬性更改時發生。(從 Control 繼承。)  BindingContextChanged 當 BindingContext 屬性的值更改時發生。(從 Control 繼承。)  CausesValidationChanged 當 CausesValidation 屬性的值更改時發生。(從 Control 繼承。) ClientSizeChanged 當 ClientSize 屬性的值更改時發生。 (從 Control 繼承。) ContextMenuStripChanged 當 ContextMenuStrip 屬性的值更改時發生。 (從 Control 繼承。) CursorChanged 當 Cursor 屬性的值更改時發生。(從 Control 繼承。) DockChanged 當 Dock 屬性的值更改時發生。(從 Control 繼承。) EnabledChanged 在 Enabled 屬性值更改后發生。(從 Control 繼承。) FontChanged 在 Font 屬性值更改時發生。(從 Control 繼承。)  ForeColorChanged 在 ForeColor 屬性值更改時發生。(從 Control 繼承。) LocationChanged 在 Location 屬性值更改后發生。(從 Control 繼承。) MaximizedBoundsChanged MaximumSizeChanged   ParentChanged 在 Parent 屬性值更改時發生。(從 Control 繼承。) RegionChanged 當 Region 屬性的值更改時發生。(從 Control 繼承。)  RightToLeftChanged 在 RightToLeft 屬性值更改時發生。(從 Control 繼承。)  RightToLeftLayoutChanged SizeChanged 在 Size 屬性值更改時發生。(從 Control 繼承。) TextChanged 在 Text 屬性值更改時發生。(從 Control 繼承。)  VisibleChanged 在 Visible 屬性值更改時發生。(從 Control 繼承。) 鼠標 MouseDown 鼠標按下 當鼠標指針位於控件上並按下鼠標鍵時發生。(從 Control 繼承。) MouseEnter 鼠標進入 在鼠標指針進入控件時發生。(從 Control 繼承。) MouseHover 鼠標移入 在鼠標指針停放在控件上時發生。(從 Control 繼承。)  MouseLeave 鼠標離開 在鼠標指針離開控件時發生。(從 Control 繼承。)  MouseMove 鼠標移動 在鼠標指針移到控件上時發生。(從 Control 繼承。)  MouseUp 鼠標抬起 在鼠標指針在控件上並釋放鼠標鍵時發生。(從 Control 繼承。) 
MouseWheel????? 在移動鼠標輪並且控件有焦點時發生。(從 Control 繼承。)
數據 (DataBindings) 數據綁定 --CollectionChanged --CollectionChanging 拖放 OragDrop 拖放 OragEnter 拖放進入 OragLeave 拖放離開 DragOver 拖放經過 GiveFeedback 給予反饋 QueryContinueDrag 查詢繼續拖動 在拖放操作期間發生,並且允許拖動源確定是否應取消拖放操作。(從 Control 繼承。) 外觀 Paint 在重繪控件時發生。(從 Control 繼承。) 



TabIndexChanged           在 TabIndex 屬性值更改時發生。(從 Control 繼承。) ????????
TextChanged             在 Text 屬性值更改時發生。(從 Control 繼承。)

 

 

初始:

app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
</configuration>

cs

namespace WindowsFormsApp2
{
    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.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(800, 450);
            this.Text = "Form1";
        }

        #endregion
    }
}

program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

Accessibility:可訪問

AccessibleDescription::可訪問描述

AccessibleName:可訪問名稱

AccessibleRole:可訪問角色

 

 

 

 添加資源:右鍵雙擊紅框項

 

筆記:

窗體
怎么修改標題 :外觀--Text屬性即可.

怎么修改左上角圖標 :   窗口樣式->ICON屬性  圖標最合適的大小 32*32

窗體出現的位置:布局--StartPosition


StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
固定窗體的大小(不允許修改窗體大小)
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 不允許修改窗體大小[GrowOnly(默認)]

是否有最大化,最小化.
this.MaximizeBox = false;

 

 

按鈕
基本特性:
鼠標滑過(按鈕獲取焦點)時,按鈕的背景色發生改變(淺藍色)[原始狀態為灰色]
鼠標"左鍵"按下時,按鈕背景色為深藍色,鼠標彈起時,變為淺藍色

控件都會有Enable屬性.標示當前控件是否允許使用.如果不想對其操作,那么Enable屬性設置為False;

MouseClick與Click
共同點: 都會接受鼠標左鍵單擊事件.並且具有共同信息(鼠標單擊的位置(x/y坐標),鼠標按下的鍵,按下次數);
不同點: MouseClick 會接受鼠標其他按鍵,click不會.[其他按鍵:右鍵/中鍵/其他](button比較特殊,僅接受鼠標左鍵.)

 

 

下拉列表框 ComboBox
快速監視快捷鍵:Ctrl+d+q

text 屬性獲取的數據為控件顯示的內容.
SelectedItem 是獲取當前選擇的對象.
如果當前DropDownStyle 為DropDown時,可以更改下拉框中的內容.那么將會引發使用SelectedItem的null異常.
為了避免用戶修改,我們一般會設置如果當前DropDownStyle為如果當前DropDownList

如果需要做一個聯動的邏輯.
首先獲取 cmb1 選擇的數據
然后設置 cmb2 選擇的項目.

二級聯動

using System;
using System.Windows.Forms;
using System.Collections.Generic;
namespace WindowsFormsApp2
{
    public partial class 帝國標簽窗體 : Form
    {
        public 帝國標簽窗體()
        {
            InitializeComponent();
        }
        Dictionary<string, string> dic = new Dictionary<string, string>();
        private void 帝國標簽窗體_Load(object sender, EventArgs e)
        {
            //窗體初始化
            /*
            cmb下拉框.SelectedIndex = 0;//默認選中第一個
            cmb下拉框.Items.Add("我");
            cmb下拉框.Items.Add("like");
            string[] strs = new string[] {"a","b" ,"c"};
            cmb下拉框.Items.AddRange(strs);

           */
            dic.Add("北京", "海淀,通州,朝陽");
            dic.Add("上海", "普陀區,閔行區,陸家嘴");
            foreach (var item in dic.Keys)
            {
                cmb下拉框.Items.Add(item.ToString());
            }
            cmb下拉框.SelectedIndex = 0;//默認選中第一個
        }


        private void Button1_Click(object sender, EventArgs e)
        {
            //獲取下拉框數據
            string textstr = cmb下拉框.Text;
            object obj= cmb下拉框.SelectedItem;
            string str = cmb下拉框.SelectedText;
            object obj2 = cmb下拉框.SelectedValue;
        }

        private void Cmb下拉框_SelectedIndexChanged(object sender, EventArgs e)
        {
            //清空原有數據
            cmb下拉框2.Items.Clear();
            //獲取選中項
            string selecttext = cmb下拉框.SelectedItem.ToString();
            //使用選中項目獲取dic中的value
            string strvalue = dic[selecttext];
            string[] strs = strvalue.Split(',');
            cmb下拉框2.Items.AddRange(strs);
            cmb下拉框2.SelectedIndex=0;
        }
    }
}
View Code

 窗體初始化時獲取所有下拉列表的選項值

            ArrayList al = new ArrayList();
            foreach (string item in this.comboBox2.Items)
            {
                Console.WriteLine(item);
                al.Add(item);
            }
View Code

 

 


Dictionary<string, string> dic = new Dictionary<string, string>();
--------------------------------------------------------------------
/*string[] strs= new string[3];
* strs[0]="窗體";
* strs[1]="修煉";
* 與下面等價
*
*string[] strs= new string[] { "窗體", "修煉", "手冊" }; 初始化器
*cmb下拉框.Items.AddRange(strs);
* 與下面是等價
*
*cmb下拉框.Items.AddRange(new string[] { "窗體", "修煉", "手冊" });
*/

 

 

 

文本框 textbox
讓文本允許多行 MultiLine屬性設置為true即可,多行后不支持ctrl+a進行全選(單行時支持)
讓文本右側出現滾動滑塊 設置ScrollBars屬性為Both即可. (Vertical 僅顯示垂直滑塊,Both則還會顯示橫向滑塊.) 只有設置Dock屬性后才會出現橫向滑塊
將文本框內容顯示為*號. 設置PasswordChar屬性為*即可.設置屬性后還是可以獲得原始內容.
不僅僅局限於*可設置為其他單字符
1.密碼類型的文本框不允許復制其中內容.
2.只允許設置單行文本框時.
需要文本只讀時,請設置ReadOnly為true.
與Enable的區別:
1.readonly允許復制內容.enable不允許
2.vs中re后可以直觀的看見變成灰色.en只有運行后才可以看見

TextChanged事件獲取的是文本框內所有內容,並非每次按鍵觸發的單獨內容.
AppendText的方法:追加文本,在末尾追加新的數據
TextLength 當前文本內容的長度(個數);

 

 

復選框(Checkbox)
Checked屬性,標記當前復選框狀態(選中時為True否則False)
ThreeState 會提供三種選中狀態
根據CheckState來判斷(Checked[選中] , Unchecked[沒選中] , Indeterminate[樹結構時,會出現的一種狀態,表示當前樹結構下有一個或多個子項(並不是所有子項)被選中])

CheckedChanged 事件:指示當前控件是否被選中


思路步驟:
1.需要在窗體加載完成時獲取所有的checkbox.
1.使用name(如果控件很多時,這就是一個噩夢般的方法)
2.使用this.Controls獲取所有的CheckBox
2.對這些checkbox完成事件的賦值.

 

 

 

單選框(RadioButton)筆記
希望使用單獨功能時,才選擇這個控件,如果希望多個功能請使用CheckedBox

Checked 屬性:True被選中否則False.
RadioButton 有區域特性,需要使用其他控件進行分隔.
如果不去添加區域(GroupBox)時,它針對真個窗體為一個區域
GroupBox
使用GpBox時內部的控件不會根據Gp的大小改變而改變(如果縮小GP,那么內部控件將被遮擋);
作用1: 當做RadioButton的選項區域
作用2: 划分控件區域
作用3: 美化

Dock 屬性. 作為基本布局.
可以讓控件完全貼靠某一個方向(上下左右),或者鋪滿整個容器

置於底層與置於頂層的作用.

 

 

標簽(Label)
大部分時候的作用就是當做顯示/提示
一些需要使用鏈接時,使用標簽替代
linkLabel 與Label 是一樣的功能,提供顯示或者提示的功能.

區別: LinkLable有點擊時/點擊后的視覺特效

實現一個簡單的登錄 思路
給登錄按鈕綁定一個Click事件
登錄過程:
1.獲取用戶名,獲取密碼
2.比對用戶名密碼
3.對登錄結果進行顯示(labres.Text = 登錄結果)

 

 

列表框(ListBox)
SelectionMode = SelectionMode.MultiExtended; 多選(可以使用Shift/Ctrl/鼠標拖選)

山寨思路
選擇項目山寨
設置SelectionMode為One(單選)
添加選中事件

 

 

 

圖片框(PictureBox)
設置Image 屬性來完成對圖片框的圖像進行初始化

SizeMode會調整當前圖像顯示的方式
Normal 不做任何效果(只會顯示出圖片框大小范圍內的圖片信息)
StretchImage 鋪滿整個圖片控件(加載驗證碼時一般會使用這個模式)
AutoSize 自動控制大小(控件的大小會隨着圖片的大小而變化)[Dock屬性是不會被齊影響]
CenterImage 僅在圖片中間居中,顯示大小跟隨控件大小
Zoom 縮放圖片,居中顯示

實現讀取本地文件思路
讀取圖片
先獲取文件路徑
將這個圖片讀取成Image對象
pic.Image = Image對象.



OpenFileDialog 打開文件對話框
Filter 屬性 設置文件篩選(圖片文件|*.jpg|所有文件|*.*)
DefaultExt 默認后綴名
FileName 獲取當前選中的文件
FileNames 獲取多個選中的文件

//一定要添加對ok的判斷
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//在這里才是獲取到有效路徑.
txtPath.Text= openFileDialog1.FileName;
}

FolderBrowserDialog 文件夾瀏覽對話框

SelectedPath 是選擇后的目錄絕對路徑
RootFolder = Environment.SpecialFolder.Cookies; (默認桌面)不推薦大家修改默認目錄,因為有些計算機不是用管理員身份啟動,那么他們沒有辦法訪問C盤中的特殊文件夾



string Path = Application.StartupPath; 不會增加/需要手動添加

string cPath = AppDomain.CurrentDomain.BaseDirectory; 會在目錄后增加/

課外知識 抽象類
abstract 抽象標示符
只要是抽象類,類的本身都會具有創建這個抽象類的方法

typeof 獲取某個對象的類型

string[] s = Enum.GetNames(typeof(PictureBoxSizeMode)); 獲取枚舉中的所有Name(也就是顯示的文字)
//根據Name 來得到相應的枚舉類型.
Enum.Parse(typeof(PictureBoxSizeMode), name); 返回typeof 中對應的枚舉類型

直接根據值進行強制類型轉換
先決條件 枚舉類型的數據必須是連續性的,而且index也是連續性的 並且index與枚舉的值是連續的

int index= cmb1.SelectedIndex; //獲取當前選擇的index
//將index轉換為枚舉對象
PictureBoxSizeMode ps = (PictureBoxSizeMode)index;

向下托選選擇:按住鍵盤的ALT鍵

 

日期時間控件(DateTimePicker) 控件會根據你本地的設置而設置
ShowUpDown 開啟時,沒有下拉選擇,只能通過鍵盤的上下鍵來調整數值,或者使用UPDown控件調整
Format
Long 長時間類型 (年月日)
Short短時間類型 (2017/6/9)
Time 只顯示時間 (17:27:20 PM) 僅顯示時間
Custom 自定義時間格式

CustomFormat屬性定義自定義顯示格式 (yyyy-MM-dd HH:mm:ss 常規格式)[yyyy 年 MM 月份 dd 日期 HH 24小時制: mm 分鍾 ss 秒]

Value 屬性獲取的是本地顯示的時間格式. value獲取的是時間類型 Datetime;
如果想獲取自定義格式的樣式時間,那么應該使用Text屬性.獲取到的是一個文本字符串

 

 

 

進度條(ProgressBar)
兩個基本屬性
MaxNum(最大值),MinNum(最小值)
Value(當前數值),
Step(增量值) : 每次增長多少


progressBar1.PerformStep(); 按照Step設置的大小移動
如果需要做的數據規模較大,不希望每次按照固定數量增長,那么我們可以直接設置value 值來打到目的

使用場景:
載入資源時
分步驟:
1. 讀取本地資源.
2. 讀取基本數據.
3. 同步服務器資源.
更新文件:
讀取文件



多個進度條更新思路(
第一個進度條 p1 最大值100,
每次增長10.
p2, 最大值 100,
每次增長10;
)
1.讓p1增長;(for p1.maxnum)
2. p1.value == p1.maxnum , 執行p2的增長;

for (int i=0;i<=p2.maxvalue;i++)
{
for(int j= 0;j<=p1.maxvalue;j++)
{
p1.value = j;
}
p2.value = i;
}

 

 

數字輸入框(NumericUpDown)  

  
不許要判斷輸入的結果.(只能輸入數字;-;包括小數點.)
textAlin 設置文本顯示的位置

Hexadecimal 以16進制顯示數據
DecimalPlaces 顯示的小數位.默認為0(沒有小數位)
Increment 按上或者下加減的數

 

 

 

氣泡提示(ToolTip)
ToolTip的展示效果
當拖動ToolTip控件至窗體時,無法直觀的看見

//單位都是毫秒. 1s = 1000ms
//toolTip1.InitialDelay //懸停時間
//toolTip1.AutomaticDelay //延遲時間
//toolTip1.AutoPopDelay //氣泡可見時間
//toolTip1.ReshowDelay //其他控件彈出氣泡的時間間隔.
//toolTip1.IsBalloon 是否以氣球的形式出現


空白符 : 空格( )
: Tab制表符( )
: xp的時候使用智能ABC,按V,接着按數字,會找到一些空白符

對某個控件進行提示,那么我們設置該控件的ToolTip

 

 

托盤控件(NotifyIcon)

程序退出時,請設置 this.notifyIcon1.Visible = false; 否則托盤內會有圖標殘留

 

 

樹控件(TreeView)
層級/分類 展示型控件
Nodes 作為所有子項(子節點)的集合
HotTracking 提供鼠標效果(移動至節點后,節點名稱會以下划線形式展示)

 

列表控件(ListView)
列表展示(表格)
View 顯示模式
Details(詳細模式)
FullRowSelect 讓一行被選中
GridLines 是否顯示網格線

項:
第一個ListViewItem 它的Text 顯示在第一列
它的子項,顯示在后面的列
每一個ListViewItem 為一行.Item中的子項(SubItem) 對應剩余的列
當ListViewItem的SubItem超出列數,則不會被顯示出來

列:
第一列的文本顯示只能在左邊(其余列是可以的).

刪除時不要以index作為刪除依據,因為在刪除時會發生index的重新排序.

 

 

 

容器(Panel面板)(SplitContainer分隔容器)(TabControl 選項卡控件)

Panel面板
作用: 作為一個控件集合相當於div(移動panel就可以整體移動panel的的多個組件,與groupbox相比groupbox頂部多一個標題)

屬性面板:外觀--borderstyle設置panel的邊框線

一個美化的SplitContainer
首先添加 標簽
隱藏這個標簽
折疊panel1時顯示

 

 

 

 

 

一些小技巧:
部分異常
全局異常
日志的重要性
門:
合理的使用控件
面向對象的方式使用控件
控件多的時候如何操作.
動態加載和組合控件
自定義控件(用戶控件)

遁:
窗體美化
如何使用皮膚來美化控件(SkinH)
制作我們自己的窗體


甲:
案例大集合
讀取文件到列表框顯示/保存數據為csv/txt等格式.
一個簡單的登錄案列.
闖關游戲.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM