.NET错误。怎么修?

时间:2015-12-09 16:41:19

标签: c# wpf

在我的复杂程序中TextBox.TextGrid.Width互连。 当我清除TextBox时,.NET崩溃了。

问题在于我TextBox.TextChangedGrid.WidthGrid.SizeChanged内{我设置TextBox.Text。因此,TextBox.Text设置在两个嵌套的事件处理程序中。

任何人都可以在没有TimerBinding

的情况下帮助修复此错误
  

运行时遇到了致命错误。错误的地址   位于0x6c05e4ad,位于线程0x2844上。错误代码是0x80131623。   此错误可能是CLR中的错误,也可能是不安全或不可验证的错误   用户代码的一部分。此错误的常见来源包括用户   COM-interop或PInvoke的编组错误,可能会破坏   叠加。

我创建了一个测试WPF应用程序来单独检查这个错误。

XAML:

<Grid Height="350">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="350" />
        <ColumnDefinition Width="350" />
    </Grid.ColumnDefinitions>
    <Grid Grid.Column="0"
          x:Name="grid"
          Width="300"
          Height="300"
          HorizontalAlignment="Center"
          VerticalAlignment="Center"
          Background="Red"
          SizeChanged="grid_SizeChanged" />
    <TextBox Grid.Column="1"
          x:Name="text"
          Text="300"
          TextChanged="text_TextChanged" />
</Grid>

代码背后:

private void grid_SizeChanged(object sender, SizeChangedEventArgs e)
{
    text.Text = grid.Width.ToString();
}

private void text_TextChanged(object sender, TextChangedEventArgs e)
{
    if (text.Text == "")
        grid.Width = double.NaN;
}

1 个答案:

答案 0 :(得分:1)

我使用Dispatcher解决了这个问题:

    window.addEventListener('keydown', function(event) {
  if (event.keyCode === 40) {
    fillBackgroundColor();
  }
});


function fillBackgroundColor() {
        var colors = ["red", "green", "blue", "orange", "purple", "yellow"];
        var color = colors[Math.floor(Math.random()*colors.length)];
    }

谢谢大家的帮助&#34;和负面评价。