亚洲一区精品自拍_2021年国内精品久久_男同十八禁gv在线观看_免费观看a级性爱黄片

Article / 文章中心

WinForm——窗體

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

常用屬性

StartPosition屬性

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

 

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

 

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

 

枚舉值

 

說明

 

CenterParent

 

窗體在其父窗體中居中。

 

CenterScreen

 

窗體在當前顯示窗口中居中,其尺寸在窗體大小中指定。

 

Manual

 

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

 

WindowsDefaultBounds

 

窗體定位在 Windows 默認位置,其邊界也由 Windows 默認決定。

 

WindowsDefaultLocation

 

窗體定位在 Windows 默認位置,其尺寸在窗體大小中指定。

 

 

例:

 

private void Form1_Load(object sender, EventArgs e)

 

       {

 

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

 

       }

 

Left屬性

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

 

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

 

Top屬性

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

 

  private void Form1_Load(object sender, EventArgs e)

 

   {

 

         this.Left = 100;

 

         this.Top = 200;

 

  }

 

Name屬性

用來獲取或設置窗體的名稱。

 

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

 

Location屬性

獲取或設置窗體的左上角相對桌面的左上角坐標。

 

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

 

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

 

TopMost屬性

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

 

Width屬性

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

 

FormBorderStyle屬性

表示要為窗體顯示的邊框樣式。 默認值為 FormBorderStyle.Sizable。

 

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

 

FormBorderStyle枚舉值如下:

 

屬性

 

 

意義

 

FormBorderStyle.None

 

0

 

無邊框

 

FormBorderStyle.FixedSingle

 

1

 

固定的單行邊框

 

FormBorderStyle.Fixed3D

 

2

 

固定的三維樣式邊框

 

FormBorderStyle.FixedDialog

 

3

 

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

 

FormBorderStyle.Sizable

 

4

 

可調整大小的邊框

 

FormBorderStyle.FixedToolWindow

 

5

 

不可調整大小的工具窗口邊框

 

FormBorderStyle.SizableToolWindow

 

6

 

可調整大小的工具窗口邊框

 

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

 

ShowInTaskbar屬性

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

 

ControlBox屬性

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

 

MaximumBox屬性

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

 

MinimizeBox屬性

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

 

WindowState屬性

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

 

枚舉值

 

描述

 

Maximized

 

最大化窗口

 

Minimized

 

最小化窗口

 

Normal

 

默認大小的窗口

 

 

RightToLeft屬性

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

 

枚舉值

 

描述

 

No

 

文本從左至有讀取,默認設置。

 

Yes

 

文本從右到左讀取。

 

Inherit

 

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

 

BackColor屬性

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

 

默認為DefaultBackColor屬性的值。

 

BackgroundImage屬性

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

 

private void Form1_Load(object sender, EventArgs e)

 

{

 

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

 

}

 

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

 

BackgroundImageLayout屬性

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

 

public virtual ImageLayout BackgroundImageLayout { get; set; }

 

ImageLayout枚舉值說明:

 

枚舉值

 

說明

 

None

 

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

 

Tile

 

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

 

Center

 

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

 

Stretch

 

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

 

Zoom

 

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

 

 

AcceptButton屬性

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

 

CancelButton屬性

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

 

 

Text屬性

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

 

Heigth屬性

用來獲取或設置窗體的高度。

 

Opacity屬性

獲取或設置窗體的不透明級別

 

ActiveControl屬性

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

 

AutoScroll屬性

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

 

Enabled屬性

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

 

Font屬性

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

 

ForeColor屬性

用來獲取或設置控件的前景色。

 

IsMdiChild屬性

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

 

IsMdiContainer屬性

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

 

KeyPreview屬性

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

 

Visible屬性

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

 

Capture屬性

如果該屬性值為true,則鼠標就會被限定只由此控件響應,不管鼠標是否在此控件的范圍內。

 

注:窗體是線程啟動測窗體,在主程序關閉時,窗體不能隨著主程序關閉時,在主程序的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賦值。

 

           }

 

       }

 

}

 

結果:

 

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

 public partial class Form1 : Form

 

   {

 

       public Form1()

 

       {

 

           InitializeComponent();

 

       }

 

       private void timer1_Tick(object sender, EventArgs e)

 

       {

 

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

 

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

 

           {

 

               label1.Left = this.Width;//設置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();

 

       }

 

 }

 

結果:

 

功能:設置閃爍的標題欄

Windows系統(tǒ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表示是否恢復狀態(tài)。

 

注:利用FalshWidow函數(shù)只能時窗體閃爍一下,如果讓窗體不停的閃爍就需要使用一個Timer控件每隔一段時間調用該函數(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屬性用于獲取或設置在網(wǎng)格中顯示屬性的對象。例:

 

private void Form1_Load(object sender, EventArgs e)

 

       {

 

           propertyGrid1.SelectedObject = this;

 

      }

 

窗體的調用

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

 

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

 

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

 

模式窗體舉例:

 

Frm2 frm=new Frm2();

 

Frm.ShowDialog();

 

非模式窗體的調用:

 

Frm2 frm=new Frm2();

 

Frm.Show();

 

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

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

 

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();

 

       }

 

啟動窗體的位置在上次關閉窗體的位置。

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

 

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

 

       private void Form1_Load(object sender, EventArgs e)

 

       {

 

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

 

           myReg1 = Registry.CurrentUser;//獲取當前用戶注冊表項。

 

           try

 

           {

 

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

 

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

 

 

           }

 

           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ù)桌面的大小來調整窗體的大小

screen類便是單個系統(tǒng)上的一個或多個顯示設備,其PrimaryScreen屬性用來獲取到主顯示,概述信返回一個screen對象,而調用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文件上加上圖標

exe的項目文件上右鍵選擇屬性-》選擇應用程序-》圖標和清單-》圖標,選擇相應的圖片。

 

 

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