将列表视图项传递给另一种形式的文本框

Passing listview item to textbox in another form

我目前正在开发一个显示同事是否在工作的应用程序。为了让管理它的人使用 'easy',我希望用户能够双击用户的列表视图项,提示 window 其中的状态那个人是可以改变的。

用所选人员的缩写(作为所用数据库的主键)提示一个消息框是相当容易的。但是,我希望将此缩写传递到另一个 window.

中的文本框

这是我用来启动 window 来更改员工状态的方法:

frmStatusEdit SE = new frmStatusEdit();
            SE.Show();

请记住:这段代码工作正常; window 启动没有任何问题。但是,双击用户后,window 启动时没有包含其缩写的文本框。

出于某种原因我无法让它工作,尽管使用了这条线,它成功地与消息框一起工作:

MessageBox.Show(lvEmployees1.SelectedItems[0].Text); 

当我使用它时(SE 指的是另一个 window),没有任何反应:

        if (lvEmployees1.SelectedItems.Count > 0)
        {
            string listItem = lvEmployees1.SelectedItems[0].Text;
            SE.tbxAbbrevEmployee.Text = listItem;

        }

我一直在寻找解决方案并遇到了几个,但 none 似乎解决了这个问题。也没有显示任何错误消息,这使得找出我做错了什么变得更加困难。

有人知道我可能做错了什么吗?我对编码不是很有经验,所以很容易忘记我的情况。

试试这个,从单击按钮到列表视图双击获取代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        var form2 = new Form2
        {
            Message = "Hello World"
        };

        form2.ShowDialog();
    }
}

public partial class Form2 : Form
{
    public string Message { get; set; } = "";

    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        textBox1.Text = Message;
    }
}

Form2 的另一个选项:

public partial class Form2 : Form
{
    private string _message = "";

    public string Message
    {
        get { return _message; }
        set
        {
            _message = value ?? "";
            textBox1.Text = _message;
        }
    }

    public Form2()
    {
        InitializeComponent();
    }
}