/// <summary> /// 执行分割矩形事件 /// </summary> /// <param name="e"></param> internal virtual void OnPartRect(PartRectEventArgs e) { if (PartRectEvent != null) { PartRectEvent(this, e); } }
void TmpltDesignerControlPanel_PartRectEvent(object sender, PartRectEventArgs e) { PartRectForm partRectForm = new PartRectForm(e.SelectedRect); partRectForm.ShowDialog(); if (partRectForm.DialogResult == DialogResult.OK) { e.Cancel = false; ///读入单选框和文本框内容 e.IsRow = ((RadioButton)partRectForm.Controls["isRowRadioBtn"]).Checked; e.PartNum = partRectForm.PartNum; } else { e.Cancel = true; } }
/// <summary> /// 响应分割矩形 /// </summary> void PartRect_Click(object sender, EventArgs e) { Rect selectedRect = ListRect.GetSelectedRects()[0]; ///触发事件的执行 PartRectEventArgs partRectArgs = new PartRectEventArgs(selectedRect); TDPanel.OnPartRect(partRectArgs); if (!partRectArgs.Cancel) { ///生成新的被分割的矩形 List <Rect> newRects = ListRect.PartRect(selectedRect, partRectArgs.IsRow, partRectArgs.PartNum); List <PartitionLine> newLines = ListLine.PartRect(selectedRect, partRectArgs.IsRow, partRectArgs.PartNum); PartRectCommand partrectCommand = new PartRectCommand(TDPanel, partRectArgs.IsRow, newRects, selectedRect, newLines); partrectCommand.Execute(); TDPanel.CommandList.AddCommand(partrectCommand); } }