如何检测参数是否发送了事件

时间:2011-12-25 20:31:49

标签: c# wpf .net-4.0

我不知道它是否被称为参数(即textbox1.text = "Hello";)。

我有一个控件,里面有一个文本框。它有一个下拉框,在文本更改时打开。但是,当我更新文本框中的文本时,该框会下拉。

我需要一种方法来制作它,只有当有人手动完成时它才会下降。

TBAddressBar.ABText.Text = getCurrentBrowser().Source.ToString();

    public void ABText_TextChanged(object sender, TextChangedEventArgs e)
    {
        if (sender == 1*)
        {
            ABDropDown.Visibility = Visibility.Visible;
        }
        else
        {
            ABDropDown.Visibility = Visibility.Collapsed;
        }
    }

3 个答案:

答案 0 :(得分:1)

如果有人手动操作,可能是他们使用按键来执行此操作。在这种情况下,请使用KeyDownKeyUp事件来显示下拉列表。

答案 1 :(得分:1)

我过去所做的是使用我在程序上更新文本框时设置的布尔变量,以绕过TextChangedEvent。

bool loading;

....

loading =true;

TBAddressBar.ABText.Text = getCurrentBrowser().Source.ToString(); 

loading = false;

public void ABText_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    if(loading) return;
    ....
} 

答案 2 :(得分:0)

简单,只需从TextChanged事件中删除代码。

无论如何你有了基本的想法..现在在KeyPress事件中做你的下拉逻辑,因为它只接受字符而不接受修饰符。所以它表现得更接近你的要求。不是你不能使用KeyDown和KeyUp来处理相同的事情,你可以,但更多的代码..