六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET可交互式位圖窗體設計(7)

[摘要]在 Windows 窗體應用程序中使用可繪制對象   我們已經討論了可繪制對象類,下面談談如何在 Windows 窗體應用程序中使用這些類。首先談一下 Windows 窗體應用程序是怎樣工作的。   Windows 窗體應用程序的主要部分   簡單的 Windows 窗體應用程序...
  在 Windows 窗體應用程序中使用可繪制對象
    我們已經討論了可繪制對象類,下面談談如何在 Windows 窗體應用程序中使用這些類。首先談一下 Windows 窗體應用程序是怎樣工作的。
  
    Windows 窗體應用程序的主要部分
    簡單的 Windows 窗體應用程序包含一個主窗口(或窗體),其中包含控件子項。如果您是一位 Visual Basic 程序員,就會發現這個模型非常熟悉。
  
    主窗口
    任何 Windows 窗體應用程序中的關鍵對象都是主窗口。該窗體將在應用程序的 static/Shared Main 方法中創建,如下所示。
  
    在一個簡單的 Windows 窗體應用程序(例如我們所編寫的)中,所有其他控件都是此主窗體的子項。
  
    按鈕和文本框
    我們的窗體具有一套按鈕和一些文本框。每個按鈕有一個處理程序,可以向列表中添加形狀,并繪制列表。所包含的文本框用于顯示如何從窗體中獲得輸入。還有一個分組框,提供了有關文本框和相關按鈕的可視指示。
  
    PictureBox
    左邊是最重要的控件:PictureBox。這是繪制和顯示圖像的位置。在 Windows 應用程序中,您可能需要隨時重繪圖像 -- 例如,如果窗口被最小化或被其他窗口覆蓋,則再次顯示窗口時便需要進行重繪。
  
    在響應畫圖 (Paint) 消息時便會完成這種按需繪圖,由父窗體窗口類中的一個事件處理程序處理。
  
    Windows 窗體應用程序中的主要例程
    我們簡單看一下 Windows 窗體應用程序中的重要例程。請注意,用戶界面的代碼與可繪制對象的代碼相比非常簡短。這就是使用 .NET Framework 完成諸多工作的好處。(這也表明我們使用可繪制對象類完成的工作確實很好。)
  
    窗體方法
    窗體(或主窗口)是從 System.Windows.Forms.Form 中派生的,所以繼承了其所有行為。所有這些控件都聲明為這個類的成員,這樣在清理類時它們也將被清理(清理是在 Dispose 方法中實際明確完成的)。
  
    它還包含了我們所需數據的聲明(DShapeList 和一個隨機數生成器對象)、Main 以及用于按鈕單擊事件和 PictureBox 畫圖事件的事件處理程序。
  
    Main
    Main 的任務就是創建和運行主窗口對象。其 C# 代碼如下所示。
  
  
  C#
  
  [STAThread]
  static void Main()
  {
  Application.Run(new MainWindow());
  }
  
  
    STAThread 屬性對于 Windows 窗體應用程序的 Main 非常重要 -- 您應當始終使用該項,以便依賴于 OLE Automation(例如拖放和剪貼板)的功能能夠正常工作。
  
    在 Microsoft Visual Studio? 生成的 Visual Basic .NET 源代碼中不會找到此方法,但是如果使用 ILDASM 在 .exe 中查找,便會找到一個與上面所述功能相同的 Main -- 可能是由 Visual Basic .NET 編譯器生成的。
  
    InitializeComponent
    在 Windows Form Designer generated code(Windows 窗體設計器生成的代碼)下(如果不能看到此區域中的代碼,單擊小加號),會看到用于創建和初始化所有按鈕和窗體上其他控件的代碼。
  
    數據聲明/隨機數生成
    除了在代碼的隱藏區域中聲明的所有控件外,我們還需要聲明兩個變量:存放繪圖列表的數據結構,以及一個 Random 類型的對象。我們使用 Random 對象為所創建的對象的位置生成隨機數。
  
    數據聲明位于 MainWindow 類內,但位于任何方法之外。在 C# 和 Visual Basic .NET 中,其代碼如下所示:
  
  
    C#
  DShapeList drawingList = new DShapeList();
  Random randomGen = new Random();
  
  
    Visual Basic
  
  .NET Dim drawingList As New DShapeList()
  Dim randomGen As New Random()
  
  
    我們還編寫了一個 helper 方法以獲得一個隨機點:
  
  
     C#
  private Point GetRandomPoint() {
  return new Point(randomGen.Next(30, 320), randomGen.Next(30, 320));
  }
  
    Visual Basic
  
  .NET Private Function GetRandomPoint() As Point
  Return New Point(randomGen.Next(30, 320), randomGen.Next(30, 320))
  End Function
  
  
    它生成兩個位于 30 和 320 之間的隨機數,作為隨機點的坐標。




主站蜘蛛池模板: 色综合天天色 | 欧美一区二区不卡视频 | 日本一区视频在线 | 青青草国产精品人人爱99 | 天天操欧美 | 亚洲天堂91| 亚洲白嫩在线观看 | 青娱乐免费在线视频 | 伊人免费视频二 | 日韩高清一级毛片 | 中文字幕在线色 | 亚洲 欧美 国产 中文 | 青青色在线视频 | 午夜在线免费视频 | 亚洲入口 | 亚洲精品乱码久久久久久麻豆 | 天天看片天天操 | 亚洲日本激情 | 日本免费三片在线播放 | 色噜噜在线观看 | 欧美一区二区影院 | 亚洲精品456 | 五月花精品视频在线观看 | 天堂18 | 视频在线二区 | 亚洲一欧洲中文字幕在线 | 天干天夜啪天天碰 | 视频一区精品 | 亚洲成av人片天堂网 | 人人看人人 | 一级黄色大片免费 | 亚洲成在人 | 青青草原成年网站免费观看 | 日韩在线第二页 | 我要操影院 | 日韩精品一区二区三区中文精品 | 欧美亚洲国产精品久久 | 手机看片午夜 | 欧美午夜一区二区福利视频 | 午夜免费入口 | 日韩伦理片网站 |