程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Windows Forms (一),windowsforms

Windows Forms (一),windowsforms

編輯:C#入門知識

Windows Forms (一),windowsforms


導讀

1、什麼是 Windows Forms

2、需要學Windows Forms 麼?

3、如何手寫一個簡單的Windows Forms 程序

4、對上面程序的說明

5、Form 類與Control類

6、Windows Forms 中的事件處理及手寫一個帶鼠標移動事件的窗體


   

什麼是Windows Forms

        通常我們的說的Windows Forms 指的是一類GUI(圖形用戶界面)程序的統稱,Windows Forms 是隨著 .NET 1.0 一起發布的,但市面上的 Windows Forms 程序主要還是 .NET 2.0 以上版本的,.NET 3.5 後主推的GUI程序變為 WPF,Windows Forms 退居2線。

 

   

需要學Windows Forms 麼?

        這個問題的答案因人而異,如果對於學生而言,我建議直接跳過Windows Forms 學WPF,WPF的思維模式比Windows Forms的事件處理模式要優秀不少。對於找工作(或已工作)的程序員而言,這個就要取決於公司的需求,在很多做行業軟件的公司,用Windows Form 比 WPF多,雖然WPF的界面比原生Windows Forms炫太多了,但是Windows Forms 第三方的控件庫彌補了這個問題。

 

   

如何手寫一個簡單的Windows Forms 程序

直接上代碼: FirstWinForm.cs

using System;
using System.Windows.Forms;

namespace DemoWinForm
{
    class App : Form
    {
        static void Main()
        {
            Application.Run(new App());
        }
    }
}

編譯命令: csc /t:winexe FirstWinForm.cs

運行 效果

using System; using System.Windows.Forms; namespace DemoWinForm { // 注意這裡我用靜態類 static class App { static void Main() { Application.Run(new MainForm()); } } public class MainForm : Form{} }

 

  

Form 類與Control類

我們先看下 System.Windows.Forms.Form 的繼承關系圖

System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.Form

標紅的是我認為需要重點關注的類,所有可視化控件(如 Button 之類)都是繼承自 System.Windows.Forms.Control,而組件則是繼承自 System.ComponentModel.Component。

System.Windows.Forms.Control 類提供了一個可視化控件的絕大多數成員(控件名、Size、字體、前景和背景色、父容器、常用事件如鼠標相關、鍵盤相關等)詳細內容參見MSDN

使用Control類的例子:

using System;
using System.Windows.Forms;
using System.Drawing;

namespace DemoWinForm
{
    static class App
    {
        static void Main()
        {
            Application.Run(new MainForm());
        }
    }

    public class MainForm : Form
    {
        public MainForm()
        {
            Text = "一個窗口";
            Height = 300;
            Width = 500;
            BackColor = Color.Green;
            Cursor = Cursors.Hand;
        }
    }
}

編譯 csc /t:winexe UseControlDemo.cs

using System; using System.Windows.Forms; using System.Drawing; namespace DemoWinForm { static class App { static void Main() { Application.Run(new MainForm()); } } public class MainForm : Form { public MainForm() { this.Text = "一個窗口"; this.Height = 300; this.Width = 500; BackColor = Color.Green; Cursor = Cursors.Hand; this.MouseMove += new MouseEventHandler(MainForm_MouseMove); } void MainForm_MouseMove(object sender, MouseEventArgs e) { this.Text = string.Format("當前鼠標坐標: [{0},{1}]",e.X,e.Y); } } }

編譯 csc /t:winexe MouseMoveDemo.cs

運行效果

image

本文完

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved