我試圖根據datagridview中行的單元格值創建一些文本框,並用每個值填充文本框。我擁有它,所以它抓住了迄今爲止的所有數據(使用MessageBox.Show(textBox.text)
),並且按預期顯示。但是,當我嘗試創建文本框時,它只創建一個(我可以在Windows窗體應用程序中看到)。根據datagridview中的列顯示文本框的數量
這裏是我的Click事件代碼:
qbcDataGridView.RowHeaderMouseClick += (object sender, DataGridViewCellMouseEventArgs e) =>
{
id = Convert.ToInt32(qbcDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
// get all the columns and assign them to textboxes text
for (int i = 0; i < qbcDataGridView.Rows[e.RowIndex].Cells.Count; i++)
{
var textBox = new TextBox
{
Name = qbcDataGridView.Rows[e.RowIndex].Cells[i].Value.ToString(),
Font = new Font(qbcDataGridView.Font.FontFamily, 12),
Text = qbcDataGridView.Rows[e.RowIndex].Cells[i].Value.ToString(),
Location = new Point(80, 50)
};
Controls.Add(textBox);
// used for testing
MessageBox.Show(textBox.Text);
}
};
下面是該方案在行動截圖:
主屏幕 -
屏幕當datagridview點擊時 -
(我註釋掉MessageBox.Show(textBox.Text)
但它顯示3,吉米,測試,測試,測試員)
我不知道,如果它的for循環改寫本身,但似乎不太可能,因爲它顯示所有的數據通過消息框。我傾向於定位,但我不完全確定。
任何幫助,將不勝感激。
謝謝!
你把他們都在同一地點所以只有最上面的一個會顯示。您確實知道可以在DGV內編輯數據,並且會執行某些驗證,例如僅允許輸入有效日期? – Plutonix
這就是我的想法。是的,我確實知道,但用戶需要文本框。 :/ – user2101411
我能做些什麼來解決這個問題? – user2101411