//######################################################################################### //★★★★★★★ http://www.cnpopsoft.com [华普软件] ★★★★★★★ //★★★★★★★ 华普软件 - VB & C#.NET 专业论文与源码荟萃! ★★★★★★★ //######################################################################################### /* * Copyright ?2005, Mathew Hall * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. */ using System; using System.Drawing; using System.Windows.Forms; using XPTable.Models; namespace XPTable.Events { #region Delegates /// /// Represents the method that will handle the CellKeyDown and CellKeyUp /// events of a Table /// public delegate void CellKeyEventHandler(object sender, CellKeyEventArgs e); #endregion #region CellKeyEventArgs /// /// Provides data for the CellKeyDown and CellKeyUp events of a Table /// public class CellKeyEventArgs : KeyEventArgs { #region Class Data /// /// The Cell that Raised the event /// private Cell cell; /// /// The Table the Cell belongs to /// private Table table; /// /// The Row index of the Cell /// private int row; /// /// The Column index of the Cell /// private int column; /// /// The Cells bounding rectangle /// private Rectangle cellRect; #endregion #region Constructor /// /// Initializes a new instance of the CellKeyEventArgs class with /// the specified source Cell, table, row index, column index, cell /// bounds and KeyEventArgs /// /// The Cell that Raised the event /// The Table the Cell belongs to /// The Row index of the Cell /// The Column index of the Cell /// The Cell's bounding rectangle /// public CellKeyEventArgs(Cell cell, Table table, int row, int column, Rectangle cellRect, KeyEventArgs kea) : base(kea.KeyData) { this.cell = cell; this.table = table; this.row = row; this.column = column; this.cellRect = cellRect; } /// /// Initializes a new instance of the CellKeyEventArgs class with /// the specified source Cell, table, row index, column index and /// cell bounds /// /// The Cell that Raised the event /// The Table the Cell belongs to /// /// The Cell's bounding rectangle /// public CellKeyEventArgs(Cell cell, Table table, CellPos cellPos, Rectangle cellRect, KeyEventArgs kea) : base(kea.KeyData) { this.cell = cell; this.table = table; this.row = cellPos.Row; this.column = cellPos.Column; this.cellRect = cellRect; } #endregion #region Properties /// /// Gets the Cell that Raised the event /// public Cell Cell { get { return this.cell; } } /// /// Gets the Table the Cell belongs to /// public Table Table { get { return this.table; } } /// /// Gets the Row index of the Cell /// public int Row { get { return this.row; } } /// /// Gets the Column index of the Cell /// public int Column { get { return this.column; } } /// /// Gets the Cells bounding rectangle /// public Rectangle CellRect { get { return this.cellRect; } } /// /// Gets the position of the Cell /// public CellPos CellPos { get { return new CellPos(this.Row, this.Column); } } #endregion } #endregion }