我是初学者,所以请耐心等待。
这都是C#。
在“MainWindow”类中,我有以下代码:
private void textBox_Enter(object sender, EventArgs e)
{
view.passwordInputEnter(/**/);
}
在“视图”类中,我有以下代码:
public void passwordInputEnter(object sender)
{
if (/**/ == "Passwort")
{
/**/ = string.Empty;
/**/ = '*';
}
}
我想要做的是:在类“MainWindow”中有多个方法都会从“视图”调用不同的方法,这些方法都完全相同。我想改变它,以便他们可以调用相同的方法,以便我可以轻松添加或删除它们。为此,我需要识别和访问启动事件的对象的各种参数。但是,我无法弄清楚如何发送
object sender
由textBox_Enter接收到passwordInputEnter()。在那个方法中,我想调用诸如“sender.Text”之类的函数。
我真的不知道怎么说它更容易理解......
非常感谢任何建议!
答案 0 :(得分:2)
如果您方法的所有调用者都是TextBox
将其更改为
public void passwordInputEnter(TextBox textBox)
{
if (textBox.Text == "Passwort")
{
xxx= string.Empty;
/**/ = '*';
}
}
来称呼它
private void textBox_Enter(object sender, EventArgs e)
{
view.passwordInputEnter((TextBox)sender);
}
修改强>
但在这种情况下,为所有文本框分享相同的事件会更容易......
答案 1 :(得分:1)
通常的做法(尽管我必须说这通常不是一个好习惯):
var textBoxSender = sender as TextBox;
if (textBoxSender != null)
{
textBoxSender.Text = "Changed value";
}
答案 2 :(得分:0)
如果我理解你正确的问题,你问的是如何将参数传递给passwordInputEnter方法。像这样传递发件人:
private void textBox_Enter(object sender, EventArgs e)
{
view.passwordInputEnter(sender);
}
public void passwordInputEnter(object sender)
{
if (sender is TextBox)
{
TextBox textBox = (TextBox)sender;
if (textBox.Text == "Passwort")
{
/**/ = string.Empty;
/**/ = '*';
}
}
}
答案 3 :(得分:0)
按如下方式投放发件人: var textBox = sender as TextBox
检查它是否为null,如果没有,则在其上设置Text属性 textBox.Text ="更改了值&#34 ;;