使用两个组合框值动态计算textbox.text

时间:2015-12-10 13:47:41

标签: c# wpf dynamic combobox textbox

我有2个组合框,名为cb1和cb2,还有1个文本框,名为tb1。

所以我需要做的是:如果同时在cb1和cb2中选择了任何值,则应将tb1.text设置为cb1除以cb2的值。

文本框应留空,直到选中2个值, 当组合框的一个选定项目发生变化时,文本框值也应动态变化。

有人可以帮帮我吗?我不知道从哪里开始..

我考虑过为组合框声明3个变量x和y,为文本框声明z。然后像if一样,将x和y动态设置为选定的值..

提前致谢!

3 个答案:

答案 0 :(得分:1)

ComboBox控件SelectedIndexChanged(object sender, EventArgs e)上有一个活动。您可以在应用程序中的两个ComboBox上附加事件,然后在事件处理程序中检查两个ComboBox中的值是否相同。如果是,您可以使用事件处理程序中计算的值更新TextBox

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.Text == comboBox2.Text)
            textBox1.Text = "true";
        else
            textBox1.Text = "";
    }

ComboBoxes的同一个事件处理程序。

答案 1 :(得分:0)

查看问题标签我相信您正在开发WPF应用程序。 也许你可以做下面这样的事情。注册到cb1和cb2的选择已更改事件。然后在处理程序中调用一个通用方法,该方法将计算值设置为文本框。

private void Cb1_SelectedIndexChanged(object sender, 
    System.EventArgs e)
{
        SetTextValue()
}

private void Cb2_SelectedIndexChanged(object sender, 
    System.EventArgs e)
{
    SetTextValue()
}

private void SetTextValue ()
(
//hope its int value that you are binding.
    var cb1value = (int) cb1.SelectedItem;
    var cb2value = (int) cb2.SelectedItem;

 tb1.Text = (cb1Value/cb2Value).toString();
)

希望这有帮助

答案 2 :(得分:-1)

:)

我认为这会对你有所帮助,我根据与两个组合框关联的事件SelectedIndexChanged做了一些代码,并验证它们不是空的。看一看,我希望它可以帮助你。

我认为这是你正在寻找的。

    //event triggered when SelectedIndexChanged
    protected void cb1_SelectedIndexChanged(object sender, EventArgs e)
    {
        int a;
        int b;
        //In this way you can compare the value and if it is possible to convert into an integer. 
        if (int.TryParse(cb1.SelectedItem.Text, out a) && int.TryParse(cb2.SelectedItem.Text, out b))
        {

            fillTextBox(a, b);
        }
    }

    protected void cb2_SelectedIndexChanged(object sender, EventArgs e)
    {
        int a;
        int b;
        if (int.TryParse(cb1.SelectedItem.Text, out a) && int.TryParse(cb2.SelectedItem.Text, out b))
        {
            fillTextBox(a,b);
        }
    }

    private void fillTextBox(int value1, int value2)
    {
        tb1.Text = (value1 / value2).ToString();
    }

问候:)