我有一個包含一個字符串:「行#,列#,Row'X'Col'X'=序列號,...在Visual Studio C#中使用的DataGridView
如何創建一個DataGrid具有行和列的數量表中定義,然後將串行#秒到電網
實例:
2,1,R1C1 = 111,R2C1 = 112,
2,2- ,R1C1 = 211,R1C2 = 212,R2C1 = 213,R2C2 = 214,
謝謝
我有一個包含一個字符串:「行#,列#,Row'X'Col'X'=序列號,...在Visual Studio C#中使用的DataGridView
如何創建一個DataGrid具有行和列的數量表中定義,然後將串行#秒到電網
實例:
2,1,R1C1 = 111,R2C1 = 112,
2,2- ,R1C1 = 211,R1C2 = 212,R2C1 = 213,R2C2 = 214,
謝謝
下面是代碼,做你在問什麼;但是我必須指出這種方法存在的一些問題。首先,從前兩個元素中獲取總行數和列數以創建表格是有風險的。如果這些數據是錯誤的,那麼這段代碼很可能會崩潰或可能會遺漏數據。舉例如果輸入是:2,2,RXCX = ..,RXCX = ..,RXCX = ..,RXCX = ..,RXCX =,RXCX = ...這條線只會得到前4個值。
更糟...這會崩潰...如果輸入是2,2 RXCX = ..,RXCX = ..那麼當您嘗試訪問splitArray中的第4個元素時會崩潰,因爲沒有第4個元素。無論哪種方式都不好。
我的觀點是安全的......在創建網格之前,看看有多少數據實際存在是一種更好的方法。你可以用StringArray.Length減去前兩個元素的數量。這些元素將定義尺寸並允許您檢查其有效性。這將確保你的循環不會超出界限,因爲提供的數據是錯誤的。當您可以從數據本身獲取該信息時,似乎冗餘且容易出錯提供維度值。
我還不是100%確定你想在這裏完成什麼。它看起來像是某種形式的搜索。這就是我想象的... 看着你的(以前的)屏幕截圖,在我看來,在你輸入序列號文本框並點擊「搜索文本文件」按鈕後,它將搜索來自輸入字符串的數據即「PLX51 ...」,然後讓網格顯示與「序列號」文本框中的內容匹配(或相似)的「過濾」結果。如果這是真的,我會忽略RXCX值並將數據放在一個列中。然後,連線文本框的OnKeyPress事件,以便在用戶輸入串行#文本框時輸入網格。否則,我迷失了爲什麼你需要以所描述的方式創建數據。僅僅因爲輸入有不必要的數據......並不意味着你必須使用它。只是一個想法。
string inputString = "2,2,R1C1=211,R1C2=212,R2C1=213,R2C2=214";
string[] splitArray = inputString.Split(',');
int totalRows = int.Parse(splitArray[0]);
int totalCols = int.Parse(splitArray[1]);
int itemIndex = 2;
// add the columns
for (int i = 0; i < totalCols; i++)
{
dataGridView1.Columns.Add("Col", "Col");
}
// add the rows
dataGridView1.Rows.Add(totalRows);
for (int i = 0; i < totalRows; i++)
{
for (int j = 0; j < totalCols; j++)
{
dataGridView1.Rows[i].Cells[j].Value = splitArray[itemIndex];
itemIndex++;
}
}
我不是真正理解你在這裏問什麼:_然後其餘的變量輸入到正確的單元格,而不硬編碼每個one_? – JohnG
您是否要求將每個PLX按照左上角62,左下角62,右上角61和右下角63的順序排列?如果這樣使用這些數字並在算法中使用4的倍數。 – Javaturtle
它在輸入字符串上看起來像一個簡單的string.split ..以獲得RXCX值。然後你就會知道電網所需的尺寸。 – JohnG