雖然經歷的複選框,我發現有書面說明這一點:CheckBox複選框=(複選框)發件人;
CheckBox checkbox = (CheckBox)sender
上checkBox1_CheckedChanged
事件。
請解釋一下是什麼意思?
雖然經歷的複選框,我發現有書面說明這一點:CheckBox複選框=(複選框)發件人;
CheckBox checkbox = (CheckBox)sender
上checkBox1_CheckedChanged
事件。
請解釋一下是什麼意思?
該行簡單地將sender
轉換爲CheckBox
。
爲什麼?
爲CheckedChanged
事件的事件處理程序的簽名是:
CheckChanged(object sender, EventArgs e)
所以,你需要投sender
回CheckBox
,如果你想使用任何CheckBox
特定功能 - object
沒有太多你可以使用...
這樣checkbox
變量可用於獲取複選框ID並在複選框上操作。
我認爲該方法的定義是這樣的:
void checkBox1_CheckedChanged(object sender,EventArgs e){
CheckBox checkbox = (CheckBox)sender;
//....
}
基本上他們在這裏做的是鑄造其聲明爲只有一個通用對象爲(更「有用」)CheckBox
的sender
變量變量。
這通常是因爲您必須強制轉換才能訪問CheckBox的「特定」屬性。
例如
sender.Checked=true;
將無法正常工作。你必須要做到這一點:
((CheckBox)sender).Checked=true;
這當然是非常難看,所以它更容易宣佈一個新的複選框變量,那麼你可以簡單地做
checkbox.Checked=true;
沒有鑄造。
sender
參數(聲明爲普通Object
)被轉換爲CheckBox
,因爲您顯然知道該事件的發件人始終是CheckBox。
由於Oded表示,因爲事件處理程序簽名,您需要投射。
您可能使用checkBox1
在事件處理程序,而不是類型轉換,但對付sender
,可以重用CheckChanged
邏輯其他控件,以及 - 雖然在這種情況下,應該沿着重構到的東西的線路:
private void MyFancyCheckChanged(CheckBox sender, EventArgs e)
{
// do stuff
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
MyFancyCheckChanged((CheckBox) sender, e);
}
你還沒有做這個事情得到。你所做的只是爲意大利麪條倉庫設置桌子。 – 2010-09-23 11:39:13
@Joel:如果你的意思是提取方法,那取決於代碼實際上是否是普遍使用的 - 在這種情況下,它可能也應該從類中抽出並放在更合適的地方。 – snemarch 2010-09-23 12:19:42
這裏是GridView的或中繼器example.Suppose我們要選擇你有你的信箱看到 所有option.As。有一個複選框,如果你點擊它,所有將選擇。代碼將更好地解釋你。
protected void ChkAll_CheckedChanged(object sender, EventArgs e)
{
foreach (RepeaterItem rowItem in this.rptFriendsRecord.Items)
{
CheckBox chk = (CheckBox)rowItem.FindControl("cbFriend");
chk.Checked = ((CheckBox)sender).Checked;
}
}
我希望它能起作用。
CheckBox類表示用戶可以選擇並清除的複選框。本主題向您介紹Windows Presentation Foundation(WPF)中的CheckBox控件,並介紹如何以可擴展應用程序標記語言(XAML)和C#創建CheckBox元素,在C#中設置事件處理程序,創建包含豐富內容的CheckBox控件,如圖像,並使用樣式來更改控件的外觀。 在這裏,我給你一個樣本。
<asp:CheckBox ID="CheckBox1" runat="server" Text="www.google.com"
OnCheckedChanged="CheckBox1_CheckedChanged" />
<asp:CheckBox ID="CheckBox2" runat="server" Text="www.yahoo.com" />
後面的代碼,代碼是
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox1.Checked)
Response.Redirect("www.google.com");
else
Response.Redirect("www.yahoo.com");
}
我希望我能再次+1您使用「顯然」 :) – xtofl 2010-09-23 11:29:16