私は、SQLデータベースから特定の日付を示すDateTimePickerコントロールを持つWinFormを持っています。C#DateTimePicker
ユーザーがクリックすると、自分の日付を変更するかどうかを尋ねるカスタムフォームが開きます。
[OK]をクリックすると、DateTimePickerを使用して日付を変更することができ、変更がSQL Serverデータベースにポストバックされます。
ユーザーが[キャンセル]をクリックすると、メソッドは終了し、変更はデータベースに保存されません。
しかし、ユーザーが「キャンセル」をクリックしても、DateTimePickerドロップダウンカレンダーは開いたままであり、ユーザーはキャンセルできなかったアクションとして解釈する可能性があります。開いているドロップダウンカレンダーを閉じるためにDateTimePickerを取得するにはどうすればよいですか?
private void datDOA_ValueChanged(object sender, EventArgs e)
{
frmConfirmBox frmCB = new frmConfirmBox("Are you sure you want to change the Date of Accident?");
frmCB.ShowDialog();
if (frmCB.intButton == 0)
{
return;
}
datDOA.Format = DateTimePickerFormat.Long;
//...Connect to Database...//
string strCaseNo = txtCaseNo.Text;
string strConnect = BuildConnectionString();
SqlConnection linkToDB = new SqlConnection(strConnect);
linkToDB.Open();
//...Send User Input to Database...//
DateTime dateNewDate = datDOA.Value;
string commandText = "UPDATE tblCases SET DOA = @DOAVal WHERE CaseNo = @CaseNoVal;";
SqlCommand sqlCom = new SqlCommand(commandText, linkToDB);
sqlCom.Parameters.Add("@DOAVal", SqlDbType.DateTime);
sqlCom.Parameters.Add("@CaseNoVal", SqlDbType.VarChar);
sqlCom.Parameters["@DOAVal"].Value = dateNewDate;
sqlCom.Parameters["@CaseNoVal"].Value = strCaseNo;
sqlCom.ExecuteNonQuery();
linkToDB.Close();
}
アップだかどうか確認するためにここにあなたのコードを入れてください。 –
DateTimePicket.Visible = false; – Lloyd
ドロップダウンは通常、コントロールがフォーカスを失ったときに閉じます。どうやってそれを開いたままにしていますか? – LarsTech