/// <summary> /// 释放由 System.Windows.Forms.InputBoxResult 使用的所有资源。 /// </summary> public void Dispose() { if (this._IsDisposed) { return; } this._IsDisposed = true; if (this._Form != null && !this._Form.IsDisposed) { try { this._Form.Dispose(); } catch (Exception) { } } this._Form = null; if (this._Editors != null) { this._Editors.Clear(); } this._Editors = null; }
/// <summary> /// 显示一个输入框。 /// </summary> /// <param name="owner">控件拥有者。</param> /// <param name="parameters">输入框参数。</param> /// <returns>返回输入框的值。</returns> public static InputBoxResult InputBox(this Control owner, InputBoxParameters parameters) { if (owner != null && owner.InvokeRequired) { return((InputBoxResult)owner.Invoke(new Func <Control, InputBoxParameters, InputBoxResult>(InputBox), owner, parameters)); } else { var form = new InputBoxForm(owner, parameters); if (owner == null) { return(new InputBoxResult(parameters.Editors, form)); } var ownerForm = owner.FindForm(); ownerForm.Activate(); var r = new InputBoxResult(parameters.Editors, form); ownerForm.Activate(); return(r); } }
/// <summary> /// 初始化 System.Windows.Forms.InputBoxResult 的新实例。 /// </summary> /// <param name="editors">可输入控件的集合。</param> /// <param name="form">输入框的窗体。</param> internal InputBoxResult(List <Control> editors, InputBoxForm form) { this._Editors = editors; this._Form = form; }
}; // class InputBoxForm // Pop up an input box and ask the user a question. public static String InputBox (String Prompt, [Optional] [DefaultValue("")] String Title, [Optional] [DefaultValue("")] String DefaultResponse, [Optional] [DefaultValue(-1)] int XPos, [Optional] [DefaultValue(-1)] int YPos) { // Consult the host to find the input box's parent window. IVbHost host; IWin32Window parent; host = HostServices.VBHost; if(host != null) { parent = host.GetParentWindow(); } else { parent = null; } // Pop up the input box and wait for the response. InputBoxForm form = new InputBoxForm (Prompt, Title, DefaultResponse, XPos, YPos); DialogResult result = form.ShowDialog(parent as Form); String resultString = form.Result; form.DisposeDialog(); // Return the result to the caller. if(result == DialogResult.OK) { return resultString; } else { return String.Empty; } }
static public string Show(string Prompt, string Title, string Default, bool UseSystemPasswordChar) { InputBoxForm frmInputDialog = new InputBoxForm(); frmInputDialog.FormCaption = Title; frmInputDialog.FormPrompt = Prompt; frmInputDialog.Value = Default; frmInputDialog.UseSystemPasswordChar = UseSystemPasswordChar; return frmInputDialog.ShowDialog() == DialogResult.OK ? frmInputDialog.Value : null; }
/// <summary> /// 显示一个输入框。 /// </summary> /// <param name="owner">控件拥有者。</param> /// <param name="parameters">输入框参数。</param> /// <returns>返回输入框的值。</returns> public static InputBoxResult InputBox(this Control owner, InputBoxParameters parameters) { if (owner != null && owner.InvokeRequired) { return (InputBoxResult)owner.Invoke(new Func<Control, InputBoxParameters, InputBoxResult>(InputBox), owner, parameters); } else { var form = new InputBoxForm(owner, parameters); if (owner == null) { return new InputBoxResult(parameters.Editors, form); } var ownerForm = owner.FindForm(); ownerForm.Activate(); var r = new InputBoxResult(parameters.Editors, form); ownerForm.Activate(); return r; } }