我有Winform應用程序我正在用C#編寫。在我的表單中,我有一個帶有七個頁面的TabControl,每個頁面都充滿元素(主要是TextBoxes和DropDownLists)。我使用DataReader抽取一些信息,填充一個DataTable,並使用元素的DataBindings.Add方法來填充這些元素與當前值。C#Winforms TabControl元素讀取爲空,直到TabPage選中
用戶可以在這些元素中輸入數據,按「保存」,然後使用元素的文本字段設置UPDATE查詢的參數。例如:
updateCommand.Parameters.Add("@CustomerName", SqlDbType.VarChar, 100).Value = CustomerName.Text;
我的問題是,一旦予加載的形式中,所有的元件被明顯認爲是空的,直到我手動選擇每個選項卡。因此,如果我在加載表單時立即按下「保存」,TabPages上我尚未選擇的所有字段嘗試用空數據更新(不好)。當我選擇每個TabPage時,這些元素現在將正確地發送它們的數據。目前,我已經制定了一個(非常)醜陋的解決方法,當我第一次填充數據時,以編程方式選擇每個TabPage,但這是一個不可接受的長期解決方案。
我的問題是,如何才能讓TabPages上的所有元素在用戶選擇TabPage之前正確返回其數據?
我不確定發生了什麼,但如果您的控件是數據綁定的,您應該從BindingSource中獲取值,而不是從控件的文本字段中獲取值。 – 2010-04-20 20:08:49
我在使用BindingSource和TabControl中的多個選項卡時遇到了完全相同的問題 – Tommassiov 2015-03-20 15:58:31