На основе диалогового окна / users / 668272 / bas.Я попытался написать больше, чтобы получить несколько значений
public static class ControlInfo
{
public static TextBox[] TextData { get; set; }
}
public static class Prompt
{
public static Form prompt = new Form();
public static void ShowDialog(string Text, string caption)
{
//string[] inputval = new string[6];
prompt = new Form()
{
Width = 500,
Height = 650,
FormBorderStyle = FormBorderStyle.FixedDialog,
Text = caption,
StartPosition = FormStartPosition.CenterScreen
};
#region:create
Label textLabel = new Label() { Left = 20, Top = 20, Text = Text };
TextBox textBox1 = new TextBox() { Left = 50, Top = 100, Width = 400 };
Button confirmationok = new Button()
{ Text = "Save", Left = 250, Width = 100, Top = 550, DialogResult = DialogResult.OK };
Button confirmationcancel = new Button()
{ Text = "Cancel", Left = 350, Width = 100, Top = 550, DialogResult = DialogResult.Cancel };
confirmationok.Click += (sender, e) => { Save(); };
confirmationcancel.Click += (sender, e) => { prompt.Close(); };
prompt.Controls.Add(confirmationcancel);
prompt.Controls.Add(textBox1);
prompt.Controls.Add(textBox2);
prompt.Controls.Add(textBox3);
prompt.Controls.Add(textBox4);
prompt.Controls.Add(textBox5);
prompt.Controls.Add(textBox6);
prompt.Controls.Add(confirmationok);
prompt.Controls.Add(textLabel);
prompt.Controls.Add(textLabel1);
prompt.Controls.Add(textLabel2);
prompt.Controls.Add(textLabel3);
prompt.Controls.Add(textLabel4);
prompt.Controls.Add(textLabel5);
prompt.Controls.Add(textLabel6);
prompt.AcceptButton = confirmationok;
prompt.AcceptButton = confirmationcancel;
prompt.ShowDialog();
}
public static void Save()
{
var cArray = prompt.Controls.OfType<TextBox>().ToArray();
ControlInfo.TextData = cArray;
}
}
[Обновить] Я попытался использовать строку [], чтобы получить значения, но это продолжается: return inputval;
'Индекс находился за пределами массива«.Так как же правильно вернуть значения в массив string []?
[Обновление 2] Исправлена проблема, создавая TextData [] для хранения значений, затем вызывая его следующим образом ControlInfo.TextData[0].Text