我有兩個串列框,我有一個按鈕可以在訊息框中顯示所選專案,但我需要從兩個串列框中進行選擇。有沒有辦法讓我將第二個串列框的資料系結到第一個串列框。
這是界面:

這是選擇時資料的顯示方式

我的意思是系結資料我希望 200 卡路里值與大米保持一致,即使選擇了其他東西

Public Class Form1
Public strfood As String
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim calory As Single
strfood = InputBox("Enter food item", "Food List")
calory = InputBox("Enter calory", "Calory List")
FoodList.Items.Add(strfood)
CaloryList.Items.Add(calory)
End Sub
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
Dim selecteditem As String = FoodList.SelectedItems(0).ToString
Dim selectedcalory As String = CaloryList.SelectedItems(0).ToString
MessageBox.Show("Food :" selecteditem & " " & "Calories :" selectedcalory)
End Sub
uj5u.com熱心網友回復:
同意djv的建議;這些東西應該在一個網格中
- 右鍵單擊解決方案資源管理器中的專案
- 添加新專案
- 添加資料集型別的檔案
- 雙擊它,一個空的表面出現。將資料集重命名為合理的名稱,例如 CalTrackerDataSet(道具網格)
- 右鍵單擊表面并選擇 Add..DataTable
- 把它命名為食物
- 右鍵單擊資料表,選擇添加..列
- 將其命名為食物
- 添加名為 Calories 的另一列,并在屬性網格中將其型別設定為 Int32(整數)
- 節省
- 轉到您的表格
- 打開資料源工具面板(在視圖選單上,在其他視窗內)并找到 Foods 節點,將其拖到您的表單中
- 底部托盤中出現一個名為 CalTrackerDataSet 的專案 - 將其更改為 CalTrackerDS - 我建議這樣做純粹是因為當 vb 將事物的實體命名為與型別相同時,這是一個很大的混淆點
您不再需要 BtnAdd 代碼,因為只需在網格中鍵入即可創建新行,但如果您確實想以編程方式添加這樣的行,您將:
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim f = InputBox("Enter food item", "Food List")
Dim c = Convert.ToInt32(InputBox("Enter calory", "Calory List"))
CalTrackerDS.Foods.AddFoodsRow(f,c)
End Sub
并且顯示用戶點擊的行更加微妙;稱為 BindingSource 的設備跟蹤當前行。因為它適用于廣泛的資料源,所以它回傳非常基本的物件,這些物件隱藏了系結資料的細節,因此您必須強制轉換才能將它們轉回來
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
Dim cur and DirectCast(DirectCast(FoodsBindingSource.Current, DataRowView).Row, CalTrackerDataSet.FoodsRow)
MessageBox.Show("Food :" & cur.Food & " " & ", Calories :" & cur.Calories)
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/314913.html
