winform總結

 

Winform總結
1, windows窗體設計:
1),Windows窗體是用於Microsoft Windows應用程序開發的、基於.NET Framework的新平臺。
2)System.Windows.Form命名空間包含用於創建基於Windows的應用程序的類,此命名空間中提供了Controls類:提供各種控件類和CommonDialogBoxes類:提供許多對話框,執行諸如操作字體、顏色或打印之類的任務
2.,Form類
Form是應用程序中所顯示的任何窗口的表示形式。一種特殊類型的窗體,即多文檔界面窗體可包含其他成爲MDI子窗體的窗體。通過將IsMdiContainer屬性設置爲true來創建Mdi窗體。通過將屬性設置爲將包含MDI子窗體的MDI父窗體來創建MDI字窗體。
Form主要屬性:text,WindowState,Ico,IsMidContainer,MainMenuStrip:與他關聯的菜單,FormBorderStyle
Form主要方法:Close,Hide,Show,ShowDialog
3, 基礎控件
Button:主要屬性:Anchor容器大小改變時Button被綁定到某個特定的位置。Dock
主要方法:Click,
TextBox:主要屬性:Multiline,PasswordChar。主要事件:TextChanged,Click,Enter
ComboBox:可編輯的文本框,有下拉菜單。主要屬性:DataSource,Items,DrawMode,
主要事件:TextChanged,TextUpdate,SelectedIndexChanged
picturesBox
picturesBox中圖片路徑:pictureBox.Image=Image.FromFiele(path);
Dock屬性:可以讓控件停靠在固定的位置
SizeMode:決定圖片與原圖的關係
4, 複雜控件
ToolStrip:工具欄。Menustrip:菜單欄,contextMenustrip:激右鍵顯示的信息StatusStrip:狀態欄,ImageList:圖片列表
Treeview:主要屬性:Nodes,selectdeNodes,CheckBoxes:指示是否在節點旁顯示覆選框,事件:AfterSelect
progressBar:進度條
5,模式窗口與非模式窗口
showDialog模式窗口:showDialog()是非獨佔資源,關閉該窗體後對象不釋放
show模式窗口:show()是獨佔資源,關閉該窗體後,對象資源釋放
面對多窗口的調用的時候,我們往往不喜歡窗口之間的隨意切換,那樣我們還有花費時間尋找我們要用的窗口,而且,一但出現問題,窗口的順序也有可能被再次打亂,很是不順手,那麼我們怎麼辦呢?
我們可以將show方法轉化爲showdialog方法,顧名思義,showdialog是一個進行路經綁定的show方法,他是不可以自由切換的,換言之,就是,當你沒有關閉你當前頁的前提下,你是無法關閉該頁面後面的任一頁面的,它是當前唯一(路經打開)爲true的。
而show方法由於未進行綁定,它所顯示的各個窗口、對話框是可以相互切換,而不需要關閉當前窗口、對話框。但是他由於未進行綁定,所以每個由show方法打開的窗口的順序是非固定的,如果遇到什麼問題,由show方法打開的窗口的順序可能會有很大的改變!
6自定義控件
1, 創建用戶自定義控件。把需要用到的屬性定義出來例如:
 int Pictureheight;
        public int Height1
        {
            get
            {
                return pictureBox1.Height;
            }
            set
            {
                pictureBox1.Height = value;
            }
        }
定義用到的事件:例如:
 public event EventHandler Button_click;
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
            }
            Button_click(sender, e);
        }
7,容器控件
FlowLayoutPannel:放在裏面的控件都會被自動佈局
GroupBox:具有標題的容器
SplitContainer:運行時可對容器的大小進行變換
TableLayoutPanel:對容器進行分塊
TabControl:選項卡
8,對話框
operFileDialog:打開文件對話框,folderBrowserDialog:打開文件夾對話框,fontDialog:字體對話框,saveFileDialog:保存對話框,pringDialog:打印對話框,ColorDialog:顏色對話框,每個對話框都可以show出來,例如openFileDialog1.show()=ResultDialog.ok打開文件對話框的過濾Filter屬性中輸入:PDF|*PDF|所有文件|*.*
9,畫圖
GDI+是Microsoft® Windows® XP 操作系統的子系統,負責在屏幕和打印機上顯示信息
Graphics類Graphics類是GDI+的核心,用來封裝一個GDI+繪圖表面。提供將對象繪製到顯示設備上的方法
Clear( )方法:    清除整個繪圖面並以指定背景色填充。
DrawLine( )方法:繪製一條連接由座標對指定的兩個點的線條。
DrawPath( )方法:繪製一系列連接一組Point結構的線段。
DrawPolygon( )方法:繪製由一組Point結構定義的多邊形。
DrawRectangle( )方法:繪製由座標對、寬度和高度指定的矩形。
DrawString( )方法:在指定位置並且用指定的Brush和Font對象繪製指定的文本字符串。
DrawArc( )方法:繪製一段弧線,它表示由一對座標、寬度和高度指定的橢圓部分。
DrawImage( )方法:在指定位置並且按原始大小繪製指定的Image對象。
畫圖的步奏:1,定義Graphics類的畫板2,定義畫筆或刷子3,定義的Graphics對象畫圖
StartCap 和 EndCap 屬性:使您可以將預設或自定義的形狀添加到線條的開始或結尾。
DashStyle 屬性:使您可以在實線、虛線、點劃線或自定義點劃線之間進行選擇。
使用陰影筆刷代碼:
HatchBrush myHatchBrush = new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);
紋理陰影筆刷:
Image myImage = Image.FromFile("MyTexture.bmp");      
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);
漸變筆刷:
LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(myRectangle,
Color.Blue,Color.Green,LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);
繪製文本:1,獲取對將擁有繪圖的圖形對象的引用Graphics g = e.Graphics;
2,創建繪製文本要使用的畫筆實例:
System.Drawing.Drawing2D.LinearGradientBrush myBrush = new
   System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle,
   Color.Red, Color.Yellow, System.Drawing.Drawing2D.
   LinearGradientMode.Horizontal);
3,創建顯示文本要使用的字體:Font myFont = new Font("Times New Roman", 24);
繪製圖像:
1創建一個 Graphics 對象,該對象表示要使用的繪圖表面
Graphics g = Button1.CreateGraphics();
2,創建一個對象該對象表示要顯示的圖像,該對象必須是從Image(如Bitmap或MetaFile)繼承的類成員如
3,Bitmap myBitmap = new Bitmap(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyPictures));
4,或者
Image img=Image.FromFile(filePath);
具體例子:
Graphics g = e. Graphics;
Image img=Image.FromFile("C:\\a.jpg",true);//將圖片放到指定目錄下C
g.DrawImage(img,0,0);
畫圖並導出圖片:
Bitmap b = new Bitmap(100, 100); 
Graphics g = Graphics.FromImage(b);
Pen p = new Pen(Color.Green ,4);
g.FillRectangle(new SolidBrush(Color.White), 0, 0, 100, 100);
g.DrawLine(p, new Point(0, 0), new Point(100, 100));
b.Save(@"f:\a.png",ImageFormat.Png ); 
10, Windows打印
在.NET框架中,提供了對Windows的打印和打印預覽的支持,其主要的支持類都包含在命名空間System.Drawing.Printing中。
打印主要通過PrintDocument類來完成
PrintDocument類共有3個與打印有關的屬性:1,DefaultPageSettings屬性:這個屬性保存了打印文檔的默認頁面設置,如大小,方向,是一個pageSettings類型的變量。
使用PrintDocument類來創建打印作業過程:1,創建類實例 2,設置類實例的屬性3,爲該類的打印時間添加事件處理函數4,調用該類的Print函數進行打印
例如:
private System.Drawing.Printing.PrintDocument pd;
private void Form1_Load(object sender, System.EventArgs e)
{
//創建實例
this.pd=new System.Drawing.Printing.PrintDocument();
      
//觸發事件
this.pd.PrintPage+=new
System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage);    
}
 
private void pd_PrintPage(object sender, ystem.Drawing.Printing.PrintPageEventArgs e)
{
//打印”QingHua IT”
e.Graphics.DrawString(“QingHua IT”,
new Font("宋體",30, FontStyle.Regular), Brushes.Black, 0, 0);
}
打印預覽:
PrintPreviewDialog類只包含兩個和預覽有關的Document屬性和PrintPreviewControl屬性。
Document 獲取或設置要預覽的文檔
PrintPreviewControl屬性則用來訪問該對話框所包含的預覽控件。
打印預覽的實例:
private System.Drawing.Printing.PrintDocument pd;
private System.Windows.Forms.PrintPreviewControl ppc;
private System.Windows.Forms.PrintPreviewDialog ppd;
private void Form1_Load(object sender, System.EventArgs e)
{
this.pd=new System.Drawing.Printing.PrintDocument();
this.ppc=new PrintPreviewControl();
this.ppd=new PrintPreviewDialog();
ppc.Document=pd;
ppc.StartPage=1;
ppc.Columns=2;
ppc.Rows=2;
ppd.Document=pd;
ppd.ShowDialog();
}
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章