我在WPF C#中做了一个简单的程序,我有很多TextBoxes
- 每个TextBox
做同样的事情,而且我很懒惰为每个TextBox
编写每个事件。
那么,有没有办法如何通过一个事件提供所有TextBox
?
有一个简短的代码:
private void OnMouseLeft(object sender, MouseButtonEventArgs e)
{
TextBox1.Text = string.Empty;
TextBox1.Foreground = Brushes.Black;
}
private void OnMouseLeft1(object sender, MouseButtonEventArgs e)
{
TextBox2.Text = string.Empty;
TextBox2.Foreground = Brushes.Black;
}
谢谢! :)
答案 0 :(得分:12)
将相同的处理程序附加到所有文本框,并使用sender
参数获取引发事件的文本框实例:
private void OnMouseLeft(object sender, MouseButtonEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.Text = String.Empty;
textBox.Foreground = Brushes.Black;
}
答案 1 :(得分:2)
private void OnMouseLeft(object sender, MouseButtonEventArgs e)
{
(sender as TextBox).Text = string.Empty;
(sender as TextBox).Foreground = Brushes.Black;
}
答案 2 :(得分:0)
'sender'参数将是TextBox本身。所以只需编写一个函数并将它们全部附加到那个函数。
private void OnMouseLeft(object sender, MouseButtonEventArgs e)
{
var textBox = (TextBox)sender;
textBox.Text = string.Empty;
textBox.Foreground = Brushes.Black;
}
答案 3 :(得分:0)
您可以将多个事件分配给同一个事件处理程序。这些事件可以来自相同的控件和/或不同的控件。
TextBox t = new TextBox();
t.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeft);
t.MouseLeftButtonDown += new MouseButtonEventHandler(OnMouseLeft);
TextBox t2 = new TextBox();
t2.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeft);
然后你只需通过转发发件人来处理哪个文本框。
((TextBox)sender).Property = value;
答案 4 :(得分:0)
将每个taxBox添加到同一个方法,然后单击如图所示单击TextBox,我没有这个,但它应该工作或至少让你朝着正确的方向前进。我跳了它有帮助。
textBox.MouseClick += new MouseEventHandler(textBox_MouseClick);
private void textBox_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
TextBox textBox = sender as TextBox;
textBox.Text = string.Empty;
textBox.Forground = Brushes.Black;
}
}
答案 5 :(得分:0)
尝试使用所有文本框,不允许使用仅限数值的文本..
$('input[type=text]') .keydown(function (e) {
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
e.preventDefault();
}
}
});
答案 6 :(得分:-1)
TextBox T = (TextBox)sender;
您可以使用发件人