私はC#で書いているWinformアプリを持っています。私のフォームには、それぞれが要素(主にTextBoxesとDropDownLists)でいっぱいの7ページのTabControlがあります。DataReaderを使用していくつかの情報を取得し、DataTableにデータを入力し、要素のDataBindings.Addメソッドを使用して、これらの要素に現在の値を入力します。
ユーザーはこれらの要素にデータを入力し、[保存]を押してから、要素のテキストフィールドを使用してUPDATEクエリのパラメーターを設定できます。例えば:
updateCommand.Parameters.Add("@CustomerName", SqlDbType.VarChar, 100).Value = CustomerName.Text;
私が抱えている問題は、フォームをロードすると、各タブを手動で選択するまで、すべての要素が明らかに空であると見なされることです。したがって、フォームをロードした直後に[保存]を押すと、まだ選択していないTabPagesのすべてのフィールドが、空のデータで更新しようとします(適切ではありません)。各TabPageを選択すると、これらの要素はデータを適切に送信します。とりあえず、(非常に)醜い回避策を考え出しました。データが初めて入力されたときに各TabPageをプログラムで選択しますが、これは受け入れられない長期的な解決策です。
私の質問は、ユーザーがそのTabPageを選択する前に、TabPagesのすべての要素を取得してデータを適切に返すにはどうすればよいですか?