[英]Call DateTimePicker.ValueChanged event in C#?
我創建了以下代碼,以使我的用戶可以看到打印出的記錄總數(當使用當前表單選擇運行搜索時將返回的總數)。
當DateTimePicker控件的值更改時(不同條件,新查詢,新記錄計數),我的代碼可以正常運行。 現在,當我名為cmbLetterType
組合框控件的選定值發生更改時,我嘗試調用並運行相同的代碼事件。
private void dtpDate_ValueChanged(object sender, EventArgs e)
{
// If not first run when form loads and sets dtpDate to current value.
string qryCmd = "";
OdbcDataReader dr;
if (cnt > 1)
{
switch (cmbLetterType.SelectedIndex)
{
case 0:
docType = "oldAddr";
qryCmd = buildSearchQuery(docType);
break;
case 1:
docType = "newAddr";
qryCmd = buildSearchQuery(docType);
break;
case 2:
docType = "nameChg";
qryCmd = buildSearchQuery(docType);
break;
}
var newQry = qryCmd.Replace(qryCmd.Substring(0, qryCmd.IndexOf("FROM") - 1), "SELECT COUNT(*) AS COUNT");
var orderByIndex = newQry.IndexOf("ORDER BY");
newQry = newQry.Replace(newQry.Substring(orderByIndex, newQry.Length - orderByIndex), "");
dr = mdl.GetData(newQry);
while (dr.Read())
{
lblNumPrinted.Text = "# out of " + dr["COUNT"].ToString() + " printed";
}
// NEED TO PERFORM ANOTHER QUERY COMBINED WITH BAC000PF to see how many records have not been printed.
mdl.closeConn();
lblNumPrinted.Visible = true;
}
cnt++;
}
private void cmbLetterType_SelectedValueChanged(object sender, EventArgs e)
{
// ERROR ~~~~~~~~~
dtpDate.ValueChanged();
}
當我輸入dtpDate.ValueChanged();
但是,我收到: The Event 'System.Windows.Forms.DateTimePicker.ValueChanged' can only appear on the left hand side of += or -=
? 誰能幫我這個; 可以肯定,我忽略了一些非常基本的內容。
我想絕對可以在最壞的情況下完全復制代碼,但是就將來可能的維護而言,這似乎是一個壞主意。
簡單!
只需將事件處理程序dtpDate_ValueChanged
內的所有內容放入另一個函數中...為其賦予一個好描述性的名稱。 現在從兩個地方調用它! ;)
private void dtpDate_ValueChanged(object sender, EventArgs e)
{
DoTheStuff();
}
private void cmbLetterType_SelectedValueChanged(object sender, EventArgs e)
{
DoTheStuff();
}
private void DoTheStuff()
{
// Code goes here...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.