При переходе через CheckBox я нашел там написаноОбъясните это: CheckBox checkbox = (CheckBox) отправитель;
CheckBox checkbox = (CheckBox)sender
на checkBox1_CheckedChanged
события.
Пожалуйста, объясните, что это значит?
При переходе через CheckBox я нашел там написаноОбъясните это: CheckBox checkbox = (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;
//....
}
В основном то, что они делают здесь заливкой sender
переменную, которая объявлена как только родовой объект в (гораздо более «полезным») CheckBox
переменная.
Это обычно делается, потому что вы должны использовать для доступа к «конкретным» свойствам CheckBox.
Например
sender.Checked=true;
не будет работать. Вы должны сделать это:
((CheckBox)sender).Checked=true;
, которые, конечно, очень некрасиво, так что гораздо проще объявить новую переменную CheckBox, а затем вы можете просто сделать
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);
}
Вы ничего не получили, делая это. Все, что вы сделали, - это таблица для склада спагетти. –
@Joel: если вы имеете в виду извлечение метода, это зависит от того, действительно ли код * является * общего использования, - и в этом случае он также должен быть вырван из класса и помещен куда-то более подходящим. – snemarch
Вот example.Suppose в Gridview или повторителя мы хотим выбрать все 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 представляет собой флажок, который пользователи могут выбирать и очищать. В этом разделе вы познакомитесь с элементом управления CheckBox в Windows Presentation Foundation (WPF) и описываете, как создавать элементы CheckBox в расширяемом языке разметки приложений (XAML) и C#, устанавливать обработчики событий на 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