예제 #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="gameField">Игровое поле, которому принадлежит ячейка.</param>
        /// <param name="x">Индекс ряда ячейки на игровом поле.</param>
        /// <param name="y">Индекс столбца ячейки на игровом поле.</param>
        /// <param name="size">Размер ячейки (в пикселях).</param>
        public GameCell(GameField gameField, int row, int column, int size, FrameExample frameExample = null)
            : base()
        {
            this.FrameExample = frameExample;

            pictureBox = new PictureBox();
            pictureBox.Dock = DockStyle.Fill;
            this.Controls.Add(pictureBox);
            this.AllowDrop = true;

            this.gameField = gameField;
            this.Size = size;
            pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;

            String imageFile;
            if (frameExample != null)
            {
                //Фрейм-прототип этого экземпляра должен быть унаследован от фрейма-объекта, который должен содержать слот "image".
                imageFile = (string)frameExample.Value("image");
                if (imageFile == null)
                    throw new NullReferenceException("slot 'image' not found for frame " + frameExample.BaseFrame.FrameName + " with id " + frameExample.BaseFrame.FrameId.ToString());
            }
            else
            {
                imageFile = "Images\\grass.jpg";
            }
            pictureBox.Image = Image.FromFile(imageFile);

            this.Row = row;
            this.Column = column;
            this.DragEnter += new DragEventHandler(GameCell_DragEnter);
            this.DragDrop += new DragEventHandler(GameCell_DragDrop);
            pictureBox.Click += new EventHandler(pictureBox_Click);
        }
예제 #2
0
        public MainForm()
        {
            InitializeComponent();

            splitGameField.Panel1.SuspendLayout();
            gameField = new GameField(10, 10);
            gameField.GameCellClickedEvent += new GameCellClickedEventHandler(gameField_GameCellClickedEvent);

            gameField.Dock = DockStyle.Fill;
            splitGameField.Panel1.Controls.Add(gameField);
            splitGameField.Panel1.ResumeLayout();

            cmbTypeLink.SelectedIndex = 0;
            cmbZoom.SelectedIndex = 2;
            StartLinkPoint = new Point();
            EndLinkPoint = new Point();

            ClassFactory.kBase.FramesChangedEvent+=new FramesChagedEventHandler(this.updateObjectsList);
        }