如何将日期从列表框发送到另一个表单的文本框
本文关键字:另一个 表单 文本 日期 列表 | 更新日期: 2023-09-27 18:31:27
我有一个列表框,表单中包含多个项目。我需要选择列表框项并单击一个按钮,然后所选项应出现在另一个表单的文本框中。我该怎么做?
我使用此代码在单击按钮后将项目放入我的表单 1 列表框中。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn2 = new SqlConnection(
"<path>''Database1.mdf'";Integrated Security=True");
conn2.Open();
ArrayList al = new ArrayList();
SqlCommand commandtwo = new SqlCommand(
"SELECT name FROM [dbo].[Table2]", conn2);
SqlDataReader dr2 = commandtwo.ExecuteReader();
while (dr2.Read())
{
al.Add(dr2[0].ToString());
}
try
{
listBox1.Items.Clear();
listBox1.Items.AddRange(al.ToArray());
conn2.Close();
}
catch (Exception)
{}
}
public void button2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
}
我需要在此列表框中选择项目,然后单击此表单中的"更新"按钮,它将打开另一个名为Form2的表单。我需要从以前的表单(Form1)中获取选定的项目,并将其显示在另一个表单(Form2)的文本框中。
这是我的第二个表单(Form2)的代码
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
Form1 f1 = new Form1();
textBox1.Text = f1.listBox1.SelectedItem.ToString();
}
}
有很多方法可以做到这一点。一种是在第一个窗体上具有从另一个窗体访问的公共属性。但如前所述,这只是一种方法(您可以使用事件,在重载构造函数中传递值等)。
// Form1
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
SelectedItem = (sender as ComboBox).SelectedItem.ToString();
}
private void button_Click(object sender, EventArgs e)
{
var frm2 = new Form2() { Owner = this };
frm2.Show();
}
public string SelectedItem { get; private set; }
然后。。。
// Form2
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
textBox1.Text = (Owner as Form1).SelectedItem;
}
您必须将值传递给构造函数中的 Form2。
public Form2(string value)
{
InitializeComponent();
textBox1.Text = value;
}
在您的 Form1 中,只需这样称呼它:
// get the item from listbox into variable value for example
Form2 = new Form2(value);
f2.Show();