/// <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); }
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); }