免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用C#編寫網(wǎng)頁小應(yīng)用程序(Applet)

用C#編寫網(wǎng)頁小應(yīng)用程序(Applet)

分類: GDI+ 2488人閱讀 評論(12) 收藏 舉報

學(xué)過Java的朋友可能都聽說過Java的歷史:當(dāng)初Java是為機頂盒設(shè)備和手持設(shè)備設(shè)計的,可惜理念在當(dāng)時太朝前,結(jié)果沒有被人所接受,于是Java的創(chuàng)始人James Gosling想到在網(wǎng)絡(luò)上碰碰運氣,當(dāng)時吸引大家眼球的就是用Java編寫的一個Applet,早期Java的應(yīng)用很多時用來編寫Applet,后來慢慢發(fā)展到J2ME/J2SE/J2EE三個分支。

現(xiàn)在RIA(Rich Internet Application,富互聯(lián)網(wǎng)應(yīng)用系統(tǒng))方面已經(jīng)是Flash和sliverlight的天下了,所以微軟推出C#的時候沒有對類似Applet這樣的網(wǎng)頁小應(yīng)用程序的支持,不過利用.net我們還是可以做出一些類似于Applet的網(wǎng)頁小應(yīng)用程序來。當(dāng)然,就像Java編寫的Applet需要客戶端安裝相應(yīng)的JRE一樣,我們用C#編寫的小網(wǎng)頁應(yīng)用程序也需要客戶端安裝相應(yīng)版本的.net framework,否則網(wǎng)頁中小程序是沒有辦法正常運行的。

說明:寫這個程序只為娛樂,好像沒有太多實際用途,下面的效果其實用Flash或者sliverlight很將簡單就實現(xiàn)了。

 

且看一個在網(wǎng)頁上不停跳動的小球的代碼:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Drawing.Drawing2D;
  7. using System.Drawing.Imaging;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.Threading;
  11. namespace BallGame
  12. {
  13.     /// <summary>
  14.     /// 程序說明:這是一個彈球的程序代碼。程序的運行效果是
  15.     /// 一個藍(lán)色的小球在控件顯示區(qū)域運動,當(dāng)小球超出屏幕顯示區(qū)域
  16.     /// 后,會自動反彈。
  17.     /// 作者:周公
  18.     /// 日期:2008-08-01
  19.     /// 首發(fā)地址:http://blog.csdn.net/zhoufoxcn/archive/2008/08/01/2755502.aspx
  20.     /// </summary>
  21.     public class BallControl : Control
  22.     {
  23.         private Rectangle ballRegion = new Rectangle(0, 0, 50, 50);//在顯示區(qū)域的球的尺寸
  24.         private Thread thread;//繪制線程
  25.         private Image image;//即將要在顯示區(qū)域繪制的圖象
  26.         private int speedX = 4;//球的水平移動速度
  27.         private int speedY = 6;//球的垂直移動速度
  28.         public BallControl()
  29.         {
  30.             ClientSize = new Size(200, 300);
  31.             BackColor = Color.Gray;
  32.             thread = new Thread(new ThreadStart(Run));
  33.             thread.Start();
  34.         }
  35.         protected override void OnPaint(PaintEventArgs e)
  36.         {
  37.             if (image != null)
  38.             {
  39.                 e.Graphics.DrawImage(image, 0, 0);
  40.             }
  41.         }
  42.         /// <summary>
  43.         /// 繪制球在顯示區(qū)域移動的線程
  44.         /// </summary>
  45.         public void Run()
  46.         {
  47.             while (true)
  48.             {
  49.                 image = new Bitmap(ClientSize.Width, ClientSize.Height);
  50.                 Graphics g = Graphics.FromImage(image);
  51.                 g.FillEllipse(Brushes.Blue, ballRegion);
  52.                 g.Dispose();
  53.                 if ((ballRegion.X < 0) || (ballRegion.X + ballRegion.Width >= ClientSize.Width))
  54.                 {
  55.                     speedX = -speedX;
  56.                 }
  57.                 if ((ballRegion.Y < 0) || (ballRegion.Y + ballRegion.Height >= ClientSize.Height))
  58.                 {
  59.                     speedY = -speedY;
  60.                 }
  61.                 ballRegion.X += speedX;
  62.                 ballRegion.Y += speedY;
  63.                 Invalidate();//重新繪制
  64.                 Thread.Sleep(300);
  65.             }
  66.         }
  67.     }
  68. }
  69. 將其編譯成dll文件,用如下命令(注意用.net framework的命令行,否則需要設(shè)置環(huán)境變量):
  70. csc /t:library /out:BallGame.dll BallGame.cs
  71. 這樣得到BallGame.dll 文件,再建立一個html文件,代碼如下:
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    5. <title>C#編寫Applet之彈球</title>
    6. </head>
    7. <body>
    8. <object id="t" classid="BallGame.dll#BallGame.BallControl"height="200" width="300" VIEWASTEXT>
    9. </object>
    10. </body>
    11. </html>
  72. 下面是程序的運行效果:
  73. 用C#編寫網(wǎng)頁小應(yīng)用程序要注意的幾點:
  74. 1、編寫的類應(yīng)該繼承自Control類;
  75. 2、應(yīng)該程序代碼編譯成dll類庫;
  76. 3、在網(wǎng)頁中通過<object></object>的形式嵌入,classId采用classid="dll的url地址#命名空間.類名"的形式。如示例中classid="BallGame.dll#BallGame.BallControl"中BallGame.dll是放在網(wǎng)頁同一目錄下,BallControl類處在BallGame命名空間下。需要注意的是,好像沒有什么辦法來在程序中獲取網(wǎng)頁上設(shè)置的顯示尺寸,所以要保證網(wǎng)頁中設(shè)置的寬度和空間的尺寸一直。

有興趣的朋友可以到:http://www.netskycn.com/ballgame.htmlhttp://www.netskycn.com/taiji.html查看我編寫的兩個用C#編寫的網(wǎng)頁小應(yīng)用程序的運行效果。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
保存圖片四法
OCX控件(組件)的相關(guān)知識
找開“搜索”,提示“找不到應(yīng)用程序”.
c#
IIS安裝和無法顯示動態(tài)網(wǎng)頁問題解決方案
電腦藍(lán)屏的原因及解決方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服