繁体   English   中英

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

[英]Passing listview item to textbox in another form

我目前正在开发一个显示同事是否在场的应用程序。 为了让要管理它的人使用起来有点“容易”,我希望用户能够双击用户的列表视图项,这会提示 window 可以更改该人的状态。

使用所选人员的缩写(作为所用数据库的主键)提示消息框是相当容易的。 但是,我希望将此缩写传递给其他 window 中的文本框。

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

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

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

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

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

当我使用它时(SE 指的是另一个窗口),什么也没有发生:

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

        }

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

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

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

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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM