C# 如何检测事件是否由参数发送
我不知道它是否被称为参数(即C# 如何检测事件是否由参数发送,c#,wpf,.net-4.0,C#,Wpf,.net 4.0,我不知道它是否被称为参数(即textbox1.text=“Hello”) 我有一个控件,其中有一个文本框。它有一个下拉框,在文本更改时打开。但是当我更新文本框中的文本时,该框会下降 我需要一种方法,使它只下降,如果有人手动这样做 TBAddressBar.ABText.Text = getCurrentBrowser().Source.ToString(); 及 如果有人手动操作,他们大概是在用按键来实现。在这种情况下,请使用或事件来显示下拉列表。简单,只需从TextChanged事件中删除代
textbox1.text=“Hello”
)
我有一个控件,其中有一个文本框。它有一个下拉框,在文本更改时打开。但是当我更新文本框中的文本时,该框会下降
我需要一种方法,使它只下降,如果有人手动这样做
TBAddressBar.ABText.Text = getCurrentBrowser().Source.ToString();
及
如果有人手动操作,他们大概是在用按键来实现。在这种情况下,请使用或事件来显示下拉列表。简单,只需从TextChanged事件中删除代码即可
不管怎样,你已经有了基本的想法。。现在在KeyPress事件中执行下拉逻辑,因为它只接受字符而不接受修饰符。因此,它的行为更接近您的需求。并不是说你不能使用KeyDown和keydup来处理相同的问题,你可以,但是更多的代码..我过去所做的是使用一个布尔变量,当我以编程方式更新我的文本框时,我会设置它来绕过TextChangedEvent i、 e
在textbos中更改文本时,如何打开下拉列表?您是使用事件手动执行还是使用触发器绑定?如果涉及到触发器,您可以发布xaml吗?不,我想保留它,但可以检测发送者是什么。@Thaky您已经得到了答案。我无法完全理解你的描述。正确的方法是在正确的事件中处理代码,我认为这是一个按键事件。考虑到他在任何地方以编程方式更改文本,他都需要额外编写两行代码,这是一个糟糕的方法。理想的方法是处理按键按下事件。
public void ABText_TextChanged(object sender, TextChangedEventArgs e)
{
if (sender == 1*)
{
ABDropDown.Visibility = Visibility.Visible;
}
else
{
ABDropDown.Visibility = Visibility.Collapsed;
}
}
bool loading;
....
loading =true;
TBAddressBar.ABText.Text = getCurrentBrowser().Source.ToString();
loading = false;
public void ABText_TextChanged(object sender, TextChangedEventArgs e)
{
if(loading) return;
....
}