如何重置组合框?

时间:2017-09-08 11:51:05

标签: c# .net winforms

我有一个带有下拉样式和2个文本框的组合框。我想添加一个条件,如果2个文本框中的任何一个的字符串不为空,那么如果从中选择任何项目,则应该重置组合框。

我在我的if子句中使用combobox.SelectedIndex=-1,但它不起作用我猜是因为我在错误的事件中使用它。

3 个答案:

答案 0 :(得分:0)

试试这个

combobox.Items.Clear();

combobox.DataSource = null;

我希望您能很好地管理Text_Changed事件,因为您还没有发布该代码

答案 1 :(得分:0)

确保两个文本框都使用TextChanged事件,然后将它们指向相同的方法。如果两个框都不为空,则组合框将重置。如果你想要它是一个或另一个,只需更改&&到||

    private void TextBox_TextChanged(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
        {
            comboBox1.SelectedIndex = -1;
        }
    }

答案 2 :(得分:0)

与c#中的clearselection相同 WF的命令是

#include <vector>
#include <memory>

class IUpdatable {
public:
    virtual void onUpdate() = 0;
};
class IDrawable {
public:
    virtual void onDraw() = 0;
};
class IEventable {
public:
    virtual void onEvent() = 0;
};

class IObject {
public:
    virtual ~IObject() = default;
};

class Button : public IObject, public IUpdatable, public IDrawable, public IEventable {
public:
    void onUpdate() override {}
    void onDraw() override {}
    void onEvent() override {}
};

class NonVisibleButton : public IObject, public IUpdatable, public IEventable {
public:
    void onUpdate() override {}
    void onEvent() override {}
};

int main(){
    std::vector <std::shared_ptr <IObject>> buttons = {
        std::static_pointer_cast<IObject>(std::make_shared<Button>()),
        std::static_pointer_cast<IObject>(std::make_shared<NonVisibleButton>())
    };
    std::vector <std::weak_ptr <IEventable>> eventables = {
        std::dynamic_pointer_cast<IEventable>(buttons.at(0)),
        std::dynamic_pointer_cast<IEventable>(buttons.at(1))
    };
    std::vector <std::weak_ptr <IDrawable>> drawbles = {
        std::dynamic_pointer_cast<IDrawable>(buttons.at(0))
    };
}

相关问题