我試圖找出如何可以更改datagridview選定行中特定單元格的值。我能夠更改值,但不是突出顯示的行中,只有第一個。該行的高亮度在「查找」按鈕代碼中定義。首先定位,然後更改datagridview中選定行中單元格的值?
例如:我輸入一個文本,它會在特定列中的每一行中搜索該文本,然後滾動並突出顯示/選擇整行。 (這工作正常)
然後我希望能夠通過選擇列名已經出現在下拉列表(組合框),以獲得突出顯示的行的特定單元格的值。然後它獲取該單元格的值,並從中扣除numericUpDownCounter(nudQTY)中存在的值。
到目前爲止,我可以通過列名(cbSupplList)選擇不同的單元做到這一點,但它只做它的第一行不突出顯示的行通過「查找」按鈕的代碼定義。
以下是迄今爲止我嘗試:
private void btnFind_Click(object sender, EventArgs e)
{
/* Code to search the alphanumneric Part Number (in Column1 header called "PART NUMBER")
and highlihgt the row*/
foreach (DataGridViewRow row in dataGridView1.Rows)
{
// Removes the row selection
row.Selected = false;
var cellValue = row.Cells["PART NUMBER"].Value;
if (cellValue != null && cellValue.ToString() == tbPartNum.Text.ToUpper())
{
// Scrolls the found row up and highlights the entire row
row.Selected = true;
dataGridView1.FirstDisplayedScrollingRowIndex = row.Index;
}
}
}
private void btnSold_Click(object sender, EventArgs e)
{
int cellVal;
int newCellVal;
cellVal = Convert.ToInt32(dataGridView1.CurrentRow.Cells[cbSuppList.Text.ToString()].Value);
newCellVal = Convert.ToInt32(cellVal - nudQty.Value);
dataGridView1.CurrentRow.Cells[cbSuppList.Text.ToString()].Value = newCellVal;
}
現在看來,這可能與在「查找」代碼所選行,並在「賣」代碼當前行的事。使SELECTED.ROW = CURRENT.ROW可以解決它....任何想法?
謝謝,即時嘗試使選定的行= currenCell,我將如何去做。我曾嘗試dataGridView1.Currentcell = dataGridView1 [cbSuppList.Text,tbPartNum.Text] ...這不起作用,它似乎希望列和行索引,而不是名稱(字符串)的int。我很抱歉,我對此很新... – Rg786 2012-03-12 15:12:01
我編輯了我的解決方案。請檢查下面的內容「編輯」 - 應該爲你工作。 – 2012-03-12 17:22:43
完美,謝謝.....事情是我曾嘗試過這種方法,但沒有包括[0]。我總是從愚蠢的錯誤中學習。再一次感謝你.. – Rg786 2012-03-12 19:24:08