Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Интернет -

C# - Элементы управления Windows

Все примеры / Интерфейс / Элементы управления Windows

Определение положения элемента

Автор: Интернет | добавлено: 10.01.2011, 20:30 | просмотров: 3636 (2+) | комментариев: 0 | рейтинг: *x1
Пример показывает, как определить где находится определенный элемент управления. В частности, в примере продемонстрирован наезд одной картинки (Picture) на другую.

Код

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

public class Form1 : System.Windows.Forms.Form
{
  private int dx = 4;
  private System.Windows.Forms.PictureBox picTarget;
  private System.Windows.Forms.PictureBox picBall;
  private System.Windows.Forms.Timer timer1;

  public Form1()
  {
    InitializeComponent();
  }
  private void InitializeComponent()
  {
    this.picTarget = new System.Windows.Forms.PictureBox();
    this.picBall = new System.Windows.Forms.PictureBox();
    this.timer1 = new System.Windows.Forms.Timer(new System.ComponentModel.Container());
    this.SuspendLayout();

    this.picTarget.BackColor = Color.Red;
    this.picTarget.Location = new System.Drawing.Point(160, 240);
    this.picTarget.Name = "picTarget";
    this.picTarget.Size = new System.Drawing.Size(56, 56);
    this.picTarget.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
    this.picTarget.TabIndex = 0;
    this.picTarget.TabStop = false;

    this.picBall.Image = new Bitmap("kbyte305x130.gif");
    this.picBall.Location = new System.Drawing.Point(24, 136);
    this.picBall.Name = "picBall";
    this.picBall.Size = new System.Drawing.Size(105, 32);
    this.picBall.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
    this.picBall.TabIndex = 1;
    this.picBall.TabStop = false;

    this.timer1.Enabled = true;
    this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.BackColor = System.Drawing.Color.White;
    this.ClientSize = new System.Drawing.Size(392, 341);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                  this.picBall,
                                                                  this.picTarget});
    this.Name = "Form1";
    this.Text = "Crasher";
    this.ResumeLayout(false);

  }
  [STAThread]
  static void Main()
  {
    Application.Run(new Form1());
  }

  private void timer1_Tick(object sender, System.EventArgs e)
  {
    int newX, newY;
    newX = picBall.Location.X + dx;
    newY = picBall.Location.Y + dx;

    if (newX > this.Width - picBall.Width)
    {
      dx = -dx;
    }

    if (newX < 0)
    {
      dx = -dx;
    }

    if (picBall.Bounds.IntersectsWith(picTarget.Bounds))
    {
      this.BackColor = Color.Black;
    }
    else
    {
      this.BackColor = Color.White;
    }

    picBall.Location = new Point(newX, newY);
  }
}
Файлы Наезд - Пример.zip (30,59 Кб)
Об авторе

Интернет

Анонимный пользователь сети Интернет. Автор великого множества кодов и программных решений. Никого никогда не видел в лицо этого пользователя, ходят слухи, что он многоликий, и может одновременно находиться в разных частях света.
Интернет
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики