Я использую кнопку в классе. Когда кнопка нажата, она должна вызывать процедуру с соответствующим текстом кнопки. Как преобразовать отправителя в String_Entry? Кроме того, я довольно новичок в отношении объектно-ориентированного/классного программирования, поэтому комментарии приветствуются.Получение доступа к родительскому элементам Button
public class String_Entry
{
public TextBox textbox;
public Button send;
// other stuff
public String_Entry()
{
textbox = new TextBox();
send = new Button();
send.Click += new System.EventHandler(this.bSend_Click);
// put in GUI, set parameters and other stuff
}
// other stuff
private void bSend_Click(object sender, EventArgs e)
{
// Trying to get the corresponding String_Entry from the Button click event
Button cntrl = (Button)sender;
String_Entry entry = (String_Entry)(cntrl.Parent);
parse.ProcessHexLine(entry);
}
}
Почему бы вам просто не пройти «это»? – germi
Посмотрите https://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 Родительское свойство. Вы не используете его должным образом. Также проверьте свойство Tag. –