[英]trouble with combobox selectedIndex
好的,用户从子窗口的组合框中选择某项,按下按钮,然后在主窗口画布中填充一种颜色。 这就是要点,但是如果用户同时按下“ X”,也会发生相同的情况。 我希望计算机看到“ X”和为此创建的按钮的区别。
Questionnaire q = new Questionnaire();
q.ShowDialog();
var color = q.comboBox1.SelectedIndex;
switch (color)
{
case 0:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 0, 128, 0));
break;
case 1:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 128, 128, 128));
break;
case 2:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 211, 211, 211));
break;
case 3:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 255, 127, 80));
break;
case 4:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 128, 128, 0));
break;
case 5:
Canvas.Background = new SolidColorBrush(Color.FromArgb(255, 255, 222, 173));
break;
这段代码是用MainWindowButton_ClickEvent编写的,它将打开子窗口。 我也尝试过使用Window_Closed和Window_Closing通过将SelectedIndex设置为-1来解决此问题,但是无论按什么按钮,它所做的总是始终返回-1而不填充画布。 我也尝试将DialogResult设置为false。 没有一个工作。
在按钮单击事件处理程序中将其关闭之前,尝试设置“问卷”窗口的DialogResult属性:
private void CloseButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
Close();
}
然后,您可以检查从DialogResult方法返回的值,以确定是否单击了按钮:
Questionnaire q = new Questionnaire();
bool? result = q.ShowDialog();
if(result.HasValue && result.Value)
{
//button was clicked
var color = q.comboBox1.SelectedIndex;
switch (color)
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.