如何将日期从列表框发送到另一个表单的文本框

本文关键字:另一个 表单 文本 日期 列表 | 更新日期: 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();