我目前正在開發一個顯示同事是否在場的應用程式。為了讓要管理它的人使用起來有點“容易”,我希望用戶能夠雙擊用戶的串列視圖項,這會提示一個視窗,可以在其中更改該人的狀態。
使用所選人員的縮寫(作為所用資料庫的主鍵)提示訊息框是相當容易的。但是,我希望將這個縮寫傳遞到另一個視窗中的文本框。
這是我用來啟動視窗以更改員工狀態的內容:
frmStatusEdit SE = new frmStatusEdit();
SE.Show();
請記住:此代碼作業正常;視窗啟動沒有任何問題。但是,在雙擊用戶時,視窗啟動時沒有包含其縮寫的文本框。
出于某種原因,盡管使用了這條線,但它與訊息框一起成功地作業,但我無法讓它作業:
MessageBox.Show(lvEmployees1.SelectedItems[0].Text);
當我使用它時(SE 指的是另一個視窗),什么也沒有發生:
if (lvEmployees1.SelectedItems.Count > 0)
{
string listItem = lvEmployees1.SelectedItems[0].Text;
SE.tbxAbbrevEmployee.Text = listItem;
}
我一直在尋找解決方案并遇到了幾個,但似乎沒有一個可以解決這個問題。也沒有顯示錯誤訊息,這使得找出我做錯了什么變得更加困難。
誰知道我可能做錯了什么?我對編碼不是很有經驗,所以在我的情況下很容易忘記事情。
uj5u.com熱心網友回復:
試試這個,將代碼從按鈕單擊到串列視圖雙擊:
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();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416901.html
標籤:
