public TextRequestForm(TextRequestData data)
        {
            InitializeComponent();
            this.ControlBox = false;
            this.MinimumSize = this.Size;
            this.MaximumSize = new Size(int.MaxValue, this.Height);

            this.Text = data.Title;

            data.ResultText = data.InitialText ?? "";
            this.textBox1.Text = data.ResultText;
            this.textBox1.SelectAll();

            var btn = new Button();
            this.AcceptButton = btn;
            btn.Click += (s, e) =>
                {
                    if (data.TextValidator != null && !data.TextValidator(textBox1.Text))
                    {
                        MessageBox.Show("Incorrect value");
                    }
                    else
                    {
                        data.ResultText = textBox1.Text;
                        this.DialogResult = System.Windows.Forms.DialogResult.OK;
                    }
                };
        }
		private static TextRequestData GetNumberRequestData()
		{
			var data = new TextRequestData
			{
				InitialText = "1",
				Title = "Enter number of elements the image consists of",
				TextValidator = str =>
				{
					int num;
					if (!int.TryParse(str, out num))
						return false;
					return num > 0;
				}
			};
			return data;
		}
		private TextRequestData GetTemplateNameRequestData(string filename)
		{
			var data = new TextRequestData
			{
				InitialText = Path.GetFileNameWithoutExtension(filename),
				Title = "Enter template's name",
				TextValidator = str => !_store.Keys.Contains(str.Trim())
			};
			return data;
		}