using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using POSV.Entity; using POSV.MessageEvent; using POSV.ShoppingCart; namespace POSV.Business { public partial class MSpecDialogForm : BusinessForm { private MSpecPanelEx specPanelEx; /// /// 当前选择的记录 /// private readonly OrderItem _orderItem = null; /// /// 权限控制码 /// private string _permissionCode = string.Empty; /// /// 授权人信息 /// private Tuple , Worker> _authz = null; public MSpecDialogForm(OrderItem orderItem , string permissionCode , Tuple , Worker> authz = null) { InitializeComponent(); this._orderItem = orderItem; this._permissionCode = permissionCode; this._authz = authz; this.controlBox.Text = this._orderItem.Name; this.mainPanel.Controls.Clear(); this.specPanelEx = new POSV.Business.MSpecPanelEx(orderItem , permissionCode , authz); this.specPanelEx.Dock = System.Windows.Forms.DockStyle.Fill; this.specPanelEx.Location = new System.Drawing.Point(0 , 0); this.specPanelEx.Name = "specPanelEx"; this.specPanelEx.Padding = new System.Windows.Forms.Padding(2); this.mainPanel.Controls.Add(this.specPanelEx); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.DesignMode) return; this.SetStyle(ControlStyles.Selectable , true); this.ActiveControl = this.specPanelEx; this.specPanelEx.NotifyChanged += OnNotifyChanged; this.specPanelEx.CancelButtonClick += OnCancelButtonClick; } private void OnNotifyChanged(object sender , FlyoutEventArgs e) { this.OnAcceptButtonClick(new TransparentEventArgs(TransparentAction.Accept , e.KeyCode , e.Data)); OnControlBoxCloseClick(sender , EventArgs.Empty); } private void OnCancelButtonClick(object sender , FlyoutEventArgs e) { OnControlBoxCloseClick(sender, EventArgs.Empty); } private void OnControlBoxCloseClick(object sender , EventArgs e) { if (this.Owner != null) { this.Owner.Close(); } this.Close(); } protected override bool ProcessCmdKey(ref Message msg , Keys keyData) { switch (keyData) { case Keys.Escape: { OnControlBoxCloseClick(this , EventArgs.Empty); } break; case Keys.Left: { MsgEvent.Send(Constant.SPEC_KEYBOARD_NOTIFY , KeyboardAction.Left); } break; case Keys.Right: { MsgEvent.Send(Constant.SPEC_KEYBOARD_NOTIFY , KeyboardAction.Right); } break; case Keys.Enter: { MsgEvent.Send(Constant.SPEC_KEYBOARD_NOTIFY , KeyboardAction.Enter); } break; } return base.ProcessCmdKey(ref msg , keyData); } private void OnCloseTouchClick(object sender, Component.TouchEventArgs e) { if (this.Owner != null) { this.Owner.Close(); } this.Close(); } } }