2013-03-28 141 views
2

我在使用Windows窗體應用程序時遇到了一些問題。 我有一個表單,它要求用戶輸入數據庫中新記錄的一些數據。我可以在我的數據庫中成功創建一個新的「訂單」。在我這樣做後,我想打開一個表單,向用戶顯示訂單的所有詳細信息。因此我拿一個已經存在的窗口並且希望bindingSource跳轉到某個位置。 我的代碼如下:BindingSource.Position沒有效果

的「newOrder形式」

//do stuff for the creation 
//open a customerDetails window with the new entry 
//resolve index of the new item 
int newIndex = ordersBindingSource.Find("OrderID", newOrderID); 
//create a new window and pass the index in the constructor 
Order orderDetailsView = new Order(newIndex); 
//show the new window and dispose the old one 
orderDetailsView.Show(); 
this.Close(); 
this.Dispose(); 

的「訂單式」構造我打電話:

public Order(int newIndex) 
{ 
    //initialize 
    InitializeComponent(); 
    //set index and repaint 
    this.ordersBindingSource.Position = newIndex; 
    this.ordersBindingSource.ResetCurrentItem(); 
} 

這簡直是不工作,我得到的數據集的第一個條目。 我在做什麼錯?

回答

1

你在哪裏初始化你BindingSource從「訂單」?確保你的newIndex < = ordersBindingSource.Count()。

試試這個:

//Form Order 
    int currentOrder = 0; 

    //constructor 
    public Order(int newIndex) 
    { 
     //initialize your variable here 
     currentOrder = newIndex; 

     //initialize 
     InitializeComponent(); 
    } 

    //Create a void method that sets the BindingSource position 
    void SetupForm() 
    { 
     ordersBindingSource.Position = currentOrder; 
    } 

    // Override the OnLoad event and call the SetupForm() method here 
    protected override OnLoad(EventArgs e) 
    { 
     SetupForm(); 
    } 
+0

謝謝你的幫助,幫助和現在的作品完美! – hoffmax91