Создайте свой собственный.
Создание собственного модального (или иного) диалогового окна ввода не так уж сложно, и вы можете создать расширяемость, необходимую для повторного использования.
public class ValueHolder {
public string SomeInput { get; set; }
public DialogResult Result { get; set; }
}
public class GimmeValues : Form {
//... HAS A TEXTBOX and Okay Buttons...
private GimmeValues() {
okButton.DialogResult = DialogResult.OK;
cancelButton.DialogResult = DialogResult.Cancel;
// ... other stuff
}
public static ValueHolder GetInput(IWin32Window owner) {
using (GimmeValues values = new GimmeValues()) {
DialogResult result = values.ShowDialog(owner);
return new ValueHolder {
SomeInput = values.Textbox1.Text,
Result = result
};
}
}
}
Хорошо, я только что написал, что все в этомРедактор, так что простите за любые синтаксические ошибки.
Вы можете сделать что-то подобное вышеописанному, но немного почистить его, добавить необходимую вам расширяемость (с точки зрения кнопок и входов, показывающих, что вам нужно, и т. д.) ... затем просто назовите это какValueHolder value = GimmeValues.GetInput(this);
где this
будет представлять IWin32Window
...
Результирующее значение value
будет выбранной ерундой, и вы сможете выполнить свою логику ..
if(value.Result == DialogResult.OK && !string.IsNullOrEmpty(value.SomeInput)){
//TODO: Place logic....
}