在我的复杂程序中TextBox.Text
与Grid.Width
互连。
当我清除TextBox
时,.NET崩溃了。
问题在于我TextBox.TextChanged
内Grid.Width
和Grid.SizeChanged
内{我设置TextBox.Text
。因此,TextBox.Text
设置在两个嵌套的事件处理程序中。
任何人都可以在没有Timer
或Binding
运行时遇到了致命错误。错误的地址 位于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;
}
答案 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;和负面评价。