雙擊 ListBox 不同項,第一次能正確顯示對應數據到 Label,後續雙擊仍顯示第一次的數據。
a 未更新:ListBox_DoubleClick 事件,檢查 a (索引/ID) 是否隨選中項變化。a 但在事件中未重新賦值。Fill 同一 DataTable 且未 Clear(),會導致數據疊加;dt.Clear(); adapter.Fill(dt); 或每次 new DataTable()。DataSet 本身不緩存查詢結果,但 TableAdapter / BindingSource 可能緩存;bindingSource.ResetBindings(false);。Form_Load 中多次 += DoubleClick 導致事件觸發多次,最後一次覆蓋顯示;-= 先移除再添加。private void listBox1_DoubleClick(object sender, EventArgs e) {
var idx = listBox1.SelectedIndex;
Console.WriteLine($"DoubleClick index={idx}"); // 觀察輸出窗口
if (idx < 0) return;
// 此處打斷點,檢查 a、DataRow、Label.Text 變化
var row = dataTable.Rows[idx];
label1.Text = row["name"].ToString();
}
核心問題多為「選中索引未正確獲取」或「數據源未同步更新」。斷點觀察 SelectedIndex 變化是最快定位路徑。