public override void SetParameter(EventBase even) { CallUIElementMethodDev _event = even as CallUIElementMethodDev; this.txtName.Text = _event.Name; this.txtCode.Text = _event.Code; this.ddlObjectForm.SelectedValue = (int)_event.TargetWindow; if (_event.TargetWindow == CallUIElementMethodEvent.EnumCallUIElementMethodTargetForm.Current) { //先把选择的项置为null //因为,当指定的窗体元素不存在时,在编辑面板上选个窗体元素,不保存,再打开编辑功能,上次的选择还存在着。 this.ddlFormElement.SelectedItem = null; foreach (object obj in this.ddlFormElement.Items) { UIElement entity = obj as UIElement; if (entity.Id == _event.FormElement) { this.ddlFormElement.SelectedItem = entity; break; } } } else { txtFormElement.Text = _event.FormElement; //调入可用事件列表 ICallEntityMethodSupport formElementEntityDev = FormElementEntityDevTypes.Instance.CreateInstance(_event.FormElementControlType) as ICallEntityMethodSupport; if (formElementEntityDev != null) { InitAvailabilityMethod(formElementEntityDev, CallUIElementMethodEvent.EnumCallUIElementMethodTargetForm.Caller); } } this.availabilityEvent.SelectedValueChanged -= new EventHandler <SEComboSelector2.OnSelectedValueChangedEventArgs>(availabilityEvent_SelectedValueChanged); //选择对应的动作 //注意的是,availabilityMethod 是有可能为 null的,如果是当前窗体,但指定的窗体元素已不存在 //就没有办法拿到 availabilityMethod 此时availabilityMethod 为null if (_availabilityMethod != null) { availabilityEvent.SetSelectedValue(_availabilityMethod.GetProvideAttribute(_event.CallEvent)); //this.SelectedEvent = _event.CallEvent; //LoadMethodPlan(); } this.availabilityEvent.SelectedValueChanged += new EventHandler <SEComboSelector2.OnSelectedValueChangedEventArgs>(availabilityEvent_SelectedValueChanged); this.SelectedEvent = _event.CallEvent; IEventEditorSupport eventParameterSet = this.SelectedEvent as IEventEditorSupport; if (eventParameterSet != null) { LoadMethodPlan(); eventParameterSet.EditorAdapter.BeginEdit(); } }
/// <summary> /// 切换对象 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ddlFormElement_SelectedIndexChanged(object sender, EventArgs e) { //看所选择的对象是否有可用的对象方法 ICallEntityMethodSupport formElementEntityDev = this.ddlFormElement.SelectedItem as ICallEntityMethodSupport; InitAvailabilityMethod(formElementEntityDev, CallUIElementMethodEvent.EnumCallUIElementMethodTargetForm.Current); }
/// <summary> /// 初始化当前可用事件 /// </summary> /// <param name="formElementEntityDev"></param> /// <param name="objectForm"></param> private void InitAvailabilityMethod(ICallEntityMethodSupport formElementEntityDev, CallUIElementMethodEvent.EnumCallUIElementMethodTargetForm objectForm) { //if (this.treeNode != null) //{ // FormEventEditor.Instance.RemoveParameterTreeNode(treeNode); // this.treeNode = null; // this.SelectedEvent = null; // this.eventParameterSet = null; //} _eventProvideAttribute.Clear(); if (_availabilityMethod != null) { _availabilityMethod.Clear(); } if (formElementEntityDev == null) { this.availabilityEvent.SetSelectedValue(null); this.availabilityEvent.Enabled = false; return; } //加个空行 //_eventProvideAttribute.Add(new EventProvideAttribute(String.Empty, -1)); _availabilityMethod = formElementEntityDev.GetAvailabilityEntityMethod(objectForm); foreach (Type eventType in _availabilityMethod) { _eventProvideAttribute.Add(_availabilityMethod.GetProvideAttribute(eventType)); } //显示当前可用事件 availabilityEvent.DataBind(_eventProvideAttribute); //如果可有事件为0 if (_availabilityMethod.Count == 0) { availabilityEvent.Enabled = false; } else { availabilityEvent.Enabled = true; } }
private void btnBrowse_Click(object sender, EventArgs e) { if (_formGlobalFormElementChoose == null || _formGlobalFormElementChoose.IsDisposed) { _formGlobalFormElementChoose = new FormGlobalFormElementChoose(); _formGlobalFormElementChoose.InitFormElementTree(); } if (_formGlobalFormElementChoose.ShowDialog() != DialogResult.OK) { return; } this.txtFormElement.Text = _formGlobalFormElementChoose.FormElementFullCode; //this.formElementControlType = FormElementEntityDevTypes.Instance.GetProvideAttribute(formGlobalFormElementChoose.SelectedFormElement); //根据选择的窗体元素,取可用的对象事件 ICallEntityMethodSupport formElementEntityDev = _formGlobalFormElementChoose.SelectedFormElement as ICallEntityMethodSupport; InitAvailabilityMethod(formElementEntityDev, CallUIElementMethodEvent.EnumCallUIElementMethodTargetForm.Caller); }