我在DataGridViewVisual Studio 2019 的 C# Winforms 應用程式的兩個不同選項卡中有兩個控制元件。
第一個網格包含專案名稱和價格如下
ITEMNAME PRICE
---------------------
MOUSE 399.00
PRINTER 12000.00
MONITOR 18500.00
在另一個網格中,我將這些發行/出售給不同客戶的物品顯示如下
CUSTOMERNAME ITEMNAME PRICE
-----------------------------------------
ANANT H MOUSE 399.00
JOLLY K MONITOR 18500.00
ANANT H MOUSE 399.00
KIRAN A PRINTER 12000.00
KIRAN A MOUSE 399.00
當第一個網格中任何專案的價格更新時,我希望它反映在第二個網格中匹配的專案名稱。例如,如果滑鼠價格更改為 500.00,它應該立即反映在第二個網格的 PRICE 列的所有 3 個單元格中,其中 ITEMNAME 匹配。
這樣做的明顯選擇是運行 for 回圈并與 ITEMNAME 匹配并獲取 PRICE 單元格以編輯值。但是,當第二個網格中有大量記錄時,這對我來說看起來很繁重且耗時。
當第一個網格中的價格發生變化時,是否有任何想法可以立即更改匹配 ITEMNAME 的 PRICE 值的所有值?
就像我們在 EXCEL 中所做的那樣,如果單元格被參考到單個主單元格,當我們更改主單元格價格值時,所有參考的單元格值都會立即自動更改。
uj5u.com熱心網友回復:
好的,所以我們可以用資料關系來做到這一點:
- 將一個 DataSet 型別的新檔案添加到您的專案中(或者,如果您已經有一個,請在現有檔案中添加)。打開資料集檔案以查看空白設計圖面(或現有表格)
- 右鍵單擊新資料表,放置一個名為 Products 的表,其中包含 ProductId、ItemName 和 Price 列,以及合理的資料型別(int、string、float)
- 放一張新表,我不知道,行情什么的
- 在報價中放置 CustomerName、ProductId 列
- 單擊 Products 表中 ProductId 的灰色行標題,使行變為藍色,然后在報價表的 ProductId 上單擊拖放 - 出現創建資料關系視窗,檢查 Products 是父表,Quotes 是子表(我總是忘記拖動的方式) - 交換頂部的組合,或者如果錯誤,則以另一種方式重做拖動
- 在 Quotes 表中添加另一列 ProductPrice,鍵入 float 并將其 Expression 屬性設定為
Parent.Price - 切換到一個新的表單設計器(現在,只是為了演示它)并打開資料源視窗(查看選單......其他視窗)。希望您沒有使用 net core .. 將產品和報價節點從資料源中拖到表單中(有兩個報價節點,一個是產品的子節點。拖動頂級節點,因為您不需要相關系結此演示的行為
運行應用程式,放入一些產品,然后輸入報價,然后更改價格。它應該自動更新報價
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335363.html
