我有2个组合框,名为cb1和cb2,还有1个文本框,名为tb1。
所以我需要做的是:如果同时在cb1和cb2中选择了任何值,则应将tb1.text设置为cb1除以cb2的值。
文本框应留空,直到选中2个值, 当组合框的一个选定项目发生变化时,文本框值也应动态变化。
有人可以帮帮我吗?我不知道从哪里开始..我考虑过为组合框声明3个变量x和y,为文本框声明z。然后像if一样,将x和y动态设置为选定的值..
提前致谢!
答案 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
做了一些代码,并验证它们不是空的。看一看,我希望它可以帮助你。
我认为这是你正在寻找的。 p>
//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();
}
问候:)