程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用C#編寫網頁小應用程序(Applet)(1)

用C#編寫網頁小應用程序(Applet)(1)

編輯:關於C語言

學過Java的朋友可能都聽說過Java的歷史:當初Java是為機頂盒設備和手持設備設計的,可惜理念在當時太朝前,結果沒有被人所接受,於是Java的創始人James Gosling想到在網絡上碰碰運氣,當時吸引大家眼球的就是用Java編寫的一個Applet,早期Java的應用很多時用來編寫Applet,後來慢慢發展到J2ME/J2SE/J2EE三個分支。

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

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

且看一個在網頁上不停跳動的小球的代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace BallGame
{
  /// <summary>
  /// 程序說明:這是一個彈球的程序代碼。程序的運行效果是
  /// 一個藍色的小球在控件顯示區域運動,當小球超出屏幕顯示區域
  /// 後,會自動反彈。
  /// 作者:周公
  /// 日期:2008-08-01
  /// 首發地址:http://blog.csdn.Net/zhoufoxcn/archive/2008/08/01/2755502.ASPx
  /// </summary>
  public class BallControl : Control
  {
    private Rectangle ballRegion = new Rectangle(0, 0, 50, 50);//在顯示區域的球的尺寸
    private Thread thread;//繪制線程
    private Image image;//即將要在顯示區域繪制的圖象
    private int speedX = 4;//球的水平移動速度
    private int speedY = 6;//球的垂直移動速度
    public BallControl()
    {
      ClIEntSize = new Size(200, 300);
      BackColor = Color.Gray;
      thread = new Thread(new ThreadStart(Run));
      thread.Start();
    }
    protected override void OnPaint(PaintEventArgs e)
    {
      if (image != null)
      {
        e.Graphics.DrawImage(image, 0, 0);
      }
    }
    /// <summary>
    /// 繪制球在顯示區域移動的線程
    /// </summary>
    public void Run()
    {
      while (true)
      {
        image = new Bitmap(ClientSize.Width, ClIEntSize.Height);
        Graphics g = Graphics.FromImage(image);
        g.FillEllipse(Brushes.Blue, ballRegion);
        g.Dispose();
        if ((ballRegion.X < 0) || (ballRegion.X + ballRegion.Width >= ClIEntSize.Width))
        {
          speedX = -speedX;
        }
        if ((ballRegion.Y < 0) || (ballRegion.Y + ballRegion.Height >= ClIEntSize.Height))
        {
          speedY = -speedY;
        }
        ballRegion.X += speedX;
        ballRegion.Y += speedY;
        Invalidate();//重新繪制
        Thread.Sleep(300);
      }
    }
  }
}

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