国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            WinForm——窗體

            發(fā)布時間:2021-11-18 點擊數(shù):662

            常用屬性

            StartPosition屬性

            用來獲取或設(shè)置運行時窗體的起始位置。

             

            語法格式:public FormStartPosition StartPosition { get; set; }

             

            屬性值:FormStartPosition的枚舉值之一,表示窗體的起始位置。說明如下:

             

            枚舉值

             

            說明

             

            CenterParent

             

            窗體在其父窗體中居中。

             

            CenterScreen

             

            窗體在當(dāng)前顯示窗口中居中,其尺寸在窗體大小中指定。

             

            Manual

             

            窗體的位置由 Location 屬性確定。

             

            WindowsDefaultBounds

             

            窗體定位在 Windows 默認(rèn)位置,其邊界也由 Windows 默認(rèn)決定。

             

            WindowsDefaultLocation

             

            窗體定位在 Windows 默認(rèn)位置,其尺寸在窗體大小中指定。

             

             

            例:

             

            private void Form1_Load(object sender, EventArgs e)

             

                   {

             

                       this.StartPosition = FormStartPosition.CenterScreen;//設(shè)置窗體劇中顯示

             

                   }

             

            Left屬性

            該屬性用來獲取或設(shè)置窗體的左邊緣與其容器的工作區(qū)左邊緣之間的距離,以像素為單位。

             

            語法格式:public int Left { get; set; }

             

            Top屬性

            用來獲取或設(shè)置窗體的上邊緣的 y 坐標(biāo)(以像素為單位)。

             

              private void Form1_Load(object sender, EventArgs e)

             

               {

             

                     this.Left = 100;

             

                     this.Top = 200;

             

              }

             

            Name屬性

            用來獲取或設(shè)置窗體的名稱。

             

            語法格式:public string Name { get; set; }

             

            Location屬性

            獲取或設(shè)置窗體的左上角相對桌面的左上角坐標(biāo)。

             

            語法格式:public Point Location { get; set; }

             

            例:this.Location = new Point(16, 16);

             

            TopMost屬性

            用來獲取或設(shè)置一個值,指示該窗體是否顯示為最頂層窗體。如果將窗體顯示為最頂層則為True,反之為False

             

            Width屬性

            用來獲取或設(shè)置窗體的寬度。語法格式:public int Width { get; set; }

             

            FormBorderStyle屬性

            表示要為窗體顯示的邊框樣式。 默認(rèn)值為 FormBorderStyle.Sizable。

             

            語法格式:public FormBorderStyle FormBorderStyle { get; set; }

             

            FormBorderStyle枚舉值如下:

             

            屬性

             

             

            意義

             

            FormBorderStyle.None

             

            0

             

            無邊框

             

            FormBorderStyle.FixedSingle

             

            1

             

            固定的單行邊框

             

            FormBorderStyle.Fixed3D

             

            2

             

            固定的三維樣式邊框

             

            FormBorderStyle.FixedDialog

             

            3

             

            固定的對話框樣式的粗邊框

             

            FormBorderStyle.Sizable

             

            4

             

            可調(diào)整大小的邊框

             

            FormBorderStyle.FixedToolWindow

             

            5

             

            不可調(diào)整大小的工具窗口邊框

             

            FormBorderStyle.SizableToolWindow

             

            6

             

            可調(diào)整大小的工具窗口邊框

             

            注:使用FixedToolWindowSizableToolWindow時,還需要將ShowInTaskbar屬性設(shè)置為false。例:this.ShowInTaskbar=false;

             

            ShowInTaskbar屬性

            該屬性用來獲取或設(shè)置一個值,該值指示是否在 Windows 任務(wù)欄中顯示窗體。

             

            ControlBox屬性

            用來獲取或設(shè)置一個值,該值指示在該窗體中是否顯示最大化、最小化和關(guān)閉按鈕。。

             

            MaximumBox屬性

            用來獲取或設(shè)置一個值,該值指示是否在窗體的標(biāo)題欄中顯示最大化按鈕。

             

            MinimizeBox屬性

            用來獲取或設(shè)置一個值,該值指示是否在窗體的標(biāo)題欄中顯示最小化按鈕。

             

            WindowState屬性

            用來獲取或設(shè)置窗體的窗口狀態(tài)。語法格式:public FormWindowState WindowState { get; set; }

             

            枚舉值

             

            描述

             

            Maximized

             

            最大化窗口

             

            Minimized

             

            最小化窗口

             

            Normal

             

            默認(rèn)大小的窗口

             

             

            RightToLeft屬性

            用來回去或設(shè)置一個值,該值指示是否將控件的元素對齊,以支持從右到左的字體的區(qū)域設(shè)置。語法格式:public virtual RightToLeft RightToLeft { get; set; }

             

            枚舉值

             

            描述

             

            No

             

            文本從左至有讀取,默認(rèn)設(shè)置。

             

            Yes

             

            文本從右到左讀取。

             

            Inherit

             

            文本的讀取方法從父控件繼承

             

            BackColor屬性

            用來獲取或設(shè)置窗體的背景色。語法格式:public override Color BackColor { get; set; }

             

            默認(rèn)為DefaultBackColor屬性的值。

             

            BackgroundImage屬性

            用來獲取或設(shè)置窗體的背景圖像。例:

             

            private void Form1_Load(object sender, EventArgs e)

             

            {

             

               this.BackgroundImage = Image.FromFile("test.jpg");        

             

            }

             

            注:上面代碼的test.jpg需要放置在程序的Debug文件夾中。

             

            BackgroundImageLayout屬性

            用來獲取或設(shè)置在ImageLayout枚舉中定義的背景圖像布局。語法格式如下:

             

            public virtual ImageLayout BackgroundImageLayout { get; set; }

             

            ImageLayout枚舉值說明:

             

            枚舉值

             

            說明

             

            None

             

            圖像沿控件工作區(qū)頂部左對齊

             

            Tile

             

            圖像沿控件的矩形工作區(qū)平鋪

             

            Center

             

            圖像沿控件的矩形工作區(qū)居中顯示

             

            Stretch

             

            圖像沿空間的矩形工作區(qū)拉伸

             

            Zoom

             

            圖像在空間的矩形工作區(qū)中放大

             

             

            AcceptButton屬性

            該屬性用來獲取或設(shè)置一個值,該值是一個按鈕的名稱,當(dāng)用戶按 ENTER 鍵時就相當(dāng)于單擊了窗體上的該按鈕。

             

            CancelButton屬性

            該屬性用來獲取或設(shè)置一個值,該值是一個按鈕的名稱,當(dāng)用戶按ESC鍵時就相當(dāng)于單擊了窗體上的該按鈕。

             

             

            Text屬性

            該屬性是一個字符串屬性,用來設(shè)置或返回在窗口標(biāo)題欄中顯示的文字。

             

            Heigth屬性

            用來獲取或設(shè)置窗體的高度。

             

            Opacity屬性

            獲取或設(shè)置窗體的不透明級別

             

            ActiveControl屬性

            用來獲取或設(shè)置容器控件中的活動控件。

             

            AutoScroll屬性

            用來獲取或設(shè)置一個值,該值指示窗體是否實現(xiàn)自動滾動。

             

            Enabled屬性

            用來獲取或設(shè)置一個值,該值指示控件是否可以對用戶交互作出響應(yīng)。

             

            Font屬性

            用來獲取或設(shè)置控件顯示的文本的字體。

             

            ForeColor屬性

            用來獲取或設(shè)置控件的前景色。

             

            IsMdiChild屬性

            獲取一個值,該值指示該窗體是否為多文檔界面 (MDI) 子窗體。

             

            IsMdiContainer屬性

            獲取或設(shè)置一個值,該值指示窗體是否為多文檔界面 (MDI) 中的子窗體的容器。

             

            KeyPreview屬性

            該屬性用來獲取或設(shè)置一個值,該值指示在將按鍵事件傳遞到具有焦點的控件前,窗體是否將接收該事件。

             

            Visible屬性

            該屬性獲取或設(shè)置一個值,該值指示是否顯示該窗體或控件。

             

            Capture屬性

            如果該屬性值為true,則鼠標(biāo)就會被限定只由此控件響應(yīng),不管鼠標(biāo)是否在此控件的范圍內(nèi)。

             

            注:窗體是線程啟動測窗體,在主程序關(guān)閉時,窗體不能隨著主程序關(guān)閉時,在主程序的Close()加上Enviroment.Exit(0);

             

            使用舉例:

            功能:窗體背景色漸變

            public partial class Form1 : Form

             

               {

             

                   public Form1()

             

                   {

             

                       InitializeComponent();

             

                   }

             

                   protected override void OnPaintBackground(PaintEventArgs e)

             

                   {

             

                       int intLocation, intHeight;

             

                       intLocation = this.ClientRectangle.Location.Y;

             

                       intHeight = this.ClientRectangle.Height / 200;

             

                       for (int i = 255; i >= 0; i--)

             

                       {          

             

                           Color color = Color.FromArgb(1, i, 111);//Color賦值

             

                           SolidBrush solid = new SolidBrush(color);//實例化一個單色的畫筆類對象。

             

                           Pen pen = new Pen(solid, 2);//實例化一個用于繪制直線和曲線的對象pen

             

                           e.Graphics.DrawRectangle(pen, this.ClientRectangle.X, intLocation, this.Width, intLocation + intHeight);

             

                           intLocation = intLocation + intHeight; //重新為變量inLocation賦值。

             

                       }

             

                   }

             

            }

             

            結(jié)果:

             

            功能:實現(xiàn)字幕在窗體中滾動

             public partial class Form1 : Form

             

               {

             

                   public Form1()

             

                   {

             

                       InitializeComponent();

             

                   }

             

                   private void timer1_Tick(object sender, EventArgs e)

             

                   {

             

                       label1.Left -= 2;//設(shè)置Label1左邊緣與其容器的工作區(qū)左邊緣之間的距離。

             

                       if (label1.Right < 0)//當(dāng)Label1右邊緣與其工作區(qū)的左邊緣自檢的距離小于0時,

             

                       {

             

                           label1.Left = this.Width;//設(shè)置lable1左邊緣與其容器的工作區(qū)左邊緣之間的距離為該窗體的寬度。

             

                       }

             

                   }

             

                   private void btnGo_Click(object sender, EventArgs e)

             

                   {

             

                       timer1.Enabled = true;

             

                   }

             

                   private void btnStop_Click(object sender, EventArgs e)

             

                   {

             

                       timer1.Enabled = false;

             

                   }

             

                   private void btnClose_Click(object sender, EventArgs e)

             

                   {

             

                       this.Close();

             

                   }

             

             }

             

            結(jié)果:

             

            功能:設(shè)置閃爍的標(biāo)題欄

            Windows系統(tǒng)中,當(dāng)程序在后臺運行時,如果某個窗體的提示信息要用戶瀏覽,該窗體不停的閃爍,這樣就會吸引用戶的注意,本實例實現(xiàn)主要用到API函數(shù)。

             

            API函數(shù)FlashWindow可以使窗體閃爍以下語法格式:

             

             [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]

             

            public static extern bool FlashWindow(IntPtr handle, bool bInvert);

             

            參數(shù)說明:handle表示要閃爍的窗體,bInvert表示是否恢復(fù)狀態(tài)。

             

            注:利用FalshWidow函數(shù)只能時窗體閃爍一下,如果讓窗體不停的閃爍就需要使用一個Timer控件每隔一段時間調(diào)用該函數(shù)。

             

            public partial class Form1 : Form

             

               {

             

                   public Form1()

             

                   {

             

                       InitializeComponent();

             

                   }

             

                   [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]

             

                   public static extern bool FlashWindow(IntPtr handle, bool bInvert);

             

                   private void btnGo_Click(object sender, EventArgs e)

             

                   {

             

                       timer1.Enabled = true;

             

                   }

             

                   private void btnStop_Click(object sender, EventArgs e)

             

                   {

             

                       timer1.Enabled = false;

             

                   }

             

                   private void timer1_Tick(object sender, EventArgs e)

             

                   {

             

                       FlashWindow(this.Handle, true);//啟動閃爍函數(shù)。

             

                   }

             

             }

             

            顯示窗體的屬性信息

            顯示窗體的屬性信息時通過PropertyGrid控件實現(xiàn)的,控件的SelectedObject屬性用于獲取或設(shè)置在網(wǎng)格中顯示屬性的對象。例:

             

            private void Form1_Load(object sender, EventArgs e)

             

                   {

             

                       propertyGrid1.SelectedObject = this;

             

                  }

             

            窗體的調(diào)用

            根據(jù)Windows窗體顯示的狀態(tài),分為模式窗體和無模式窗體。

             

            模式窗體使用ShowDialog方法調(diào)用,該窗體為當(dāng)前窗體時,其他窗體不可用,只有當(dāng)模式窗體關(guān)閉時,其他的窗體才可以恢復(fù)到可用狀態(tài)。

             

            無模式窗體使用Show方法調(diào)用,單擊任何其他窗體,則選中的窗體為當(dāng)前窗體并且顯示在屏幕的最前面。

             

            模式窗體舉例:

             

            Frm2 frm=new Frm2();

             

            Frm.ShowDialog();

             

            非模式窗體的調(diào)用:

             

            Frm2 frm=new Frm2();

             

            Frm.Show();

             

            兩個不相關(guān)的頁面進行數(shù)據(jù)交換

            此功能是在做餐博士的時候,有一個這樣的需求,當(dāng)菜品的信息發(fā)生改變時,將已經(jīng)打開的頁面信息自動更新??梢岳斫鉃橛^察者模式。

             

            namespace CurrentReserving.Model

             

            {

                    Public delegate void ModelReturnEventHander(object sender,ModelChangedEventArgs e);

             

                    public static class ReserveModel

             

                    {

                              public static event ModelReturnEventHandler ModelChanged;

             

                              private static GuestReserveInfo _model;

             

                              public static GuestReserveInfo Model

             

                              {

            get{return _model;}

             

            set{

            _model=value;

             

            if(ModelChanged!=null&& _model!=null)

             

            {

            ModelChangedEventArgs ex=new ModelChangedEventArgs(_model);

             

            }

             

            }

             

            }

             

            }

             

            public class ModelChangedEventArgs:EventArgs

             

            {

                    private GuestReserverInfo _model;

             

                    public ModelChangedEventArgs(GuestReserveInfo _Model)

             

                    {

                              _model=_Mode;

             

            }

             

            public GuestReserveInfo Model

             

            {

                    get{ return _model;}

             

            }

             

            }

             

            }

             

            修改信息后,執(zhí)行修改信息發(fā)送

             

            private void btnChangeInfo_Click(object sender,EventArgs e)

             

            {

            ReserveModel.Model=table._reserveInfo;

             

            }

             

            接受信息的頁面,訂閱事件

             

            public CurrentTableStatusPage()

             

            {

                    InitializeComponent();

             

                    ReserveModel.ModelChanged+=new ModeReturnEventHander(ReserveModel_ModelChanged);

             

             

            }

             

            void Reservel_ModelChanged(object sender,ModelChangedEventArgs e)

             

            {

                    GuestReserveInfo reserveInfo=ReserveModel.Model;

             

            }

             

            使用匿名方法防止窗體假死的現(xiàn)象

            程序執(zhí)行時,如果有大量的方法在主線程中等待執(zhí)行,則或造成窗體出現(xiàn)假死的現(xiàn)象,本實例通過使用匿名的方法實現(xiàn)防止窗體出現(xiàn)假死的現(xiàn)象。

             

                   private void Form1_Load(object sender, EventArgs e)

             

                   {

             

                       Thread th = new Thread(() =>

             

                         {

             

                             Invoke((MethodInvoker)(() =>

             

                             {

             

                                 long sun = 0;

             

                                 for (long i = 0; i < 1000000000; i++)

             

                                 {

             

                                     sun += i;

             

                                                     

             

                                 }

             

                                 label1.Text = sun.ToString();

             

                             }

             

                         ));

             

                         });

             

                       th.IsBackground = true;

             

                       th.Start();

             

                   }

             

            啟動窗體的位置在上次關(guān)閉窗體的位置。

            通過在注冊表中讀寫窗體的Location屬性來實現(xiàn)的。在窗體關(guān)閉前處理窗體的FormClosed時間,將窗體的Location屬性值寫入注冊表,然后在窗體的Load事件中從注冊表中讀取保存的數(shù)據(jù),設(shè)置窗體的Location屬性值,從而實現(xiàn)了從上次關(guān)閉的位置啟動窗體的功能。

             

                    讀寫注冊表主要通過RegistryKey類的Get Value方法和Set Value方法來實現(xiàn)的。

             

                   private void Form1_Load(object sender, EventArgs e)

             

                   {

             

                       RegistryKey myReg1, myReg2;//聲明之策表對象。

             

                       myReg1 = Registry.CurrentUser;//獲取當(dāng)前用戶注冊表項。

             

                       try

             

                       {

             

                           myReg2 = myReg1.CreateSubKey("Software\\MySoft");//在注冊表中創(chuàng)建子項

             

                           this.Location = new Point(Convert.ToInt16(myReg2.GetValue("1")), Convert.ToInt16(myReg2.GetValue("2")));//設(shè)置窗體的顯示位置。

             

             

                       }

             

                       catch

             

                       {

             

                       }

             

                   }

             

                   private void Form1_FormClosed(object sender, FormClosedEventArgs e)

             

                   {

             

                       RegistryKey myReg1, myReg2;

             

                       myReg1 = Registry.CurrentUser;

             

                       myReg2 = myReg1.CreateSubKey("Software\\MySoft");

             

                       try

             

                       {

             

                           myReg2.SetValue("1", this.Location.X.ToString());

             

                           myReg2.SetValue("2", this.Location.Y.ToString());

             

                       }

             

                       catch

             

                       { }

             

                   }

             

            根據(jù)桌面的大小來調(diào)整窗體的大小

            screen類便是單個系統(tǒng)上的一個或多個顯示設(shè)備,其PrimaryScreen屬性用來獲取到主顯示,概述信返回一個screen對象,而調(diào)用screen對象的WorkingArea屬性可以獲取顯示器的工作區(qū)。

             

                   private void Form1_Load(object sender, EventArgs e)

             

                   {

             

                       int deskWidth = Screen.PrimaryScreen.WorkingArea.Width;

             

                       int deskHeight = Screen.PrimaryScreen.WorkingArea.Height;

             

                       this.Width = Convert.ToInt32(deskWidth * 0.8);

             

                       this.Height = Convert.ToInt32(deskHeight * 0.8);

             

                   }

             

            • 如何在exe文件上加上圖標(biāo)

            exe的項目文件上右鍵選擇屬性-》選擇應(yīng)用程序-》圖標(biāo)和清單-》圖標(biāo),選擇相應(yīng)的圖片。

             

             

            版權(quán)聲明:本文內(nèi)容轉(zhuǎn)發(fā)自阿里云社區(qū),由阿里云實名注冊用戶自發(fā)貢獻!版權(quán)歸原作者所有。本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本中有涉嫌抄襲的內(nèi)容,請聯(lián)系站內(nèi)客服,本將立刻刪除涉嫌侵權(quán)內(nèi)容。