gpt4 book ai didi

c# - WPF 在不同的环境中有不同的行为?

转载 作者:行者123 更新时间:2023-11-30 14:32:49 24 4
gpt4 key购买 nike

private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
RichTextBox myRTB = new RichTextBox();
ListViewItem lvi1 = new ListViewItem();
ListViewItem lvi2 = new ListViewItem();
lvi1.Content = myRTB;
lvi2.Content = myRTB;

this.lstView1.Items.Add(lvi1);
this.lstView2.Items.Add(lvi2);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

两台机器:
机器 1:Windows 7 32 位,已安装 .net4.0
机器 2:Windows 8 64 位,安装了 .net4.0/4.5

上面的代码总是在机器 1 上崩溃,除了“指定的元素已经是另一个元素的逻辑子元素,先断开它。”

但是,它在机器2上运行。(lvi2的内容实际上是空的)

有人可以详细解释一下,为什么会这样吗?(注意:测试应用程序是用 VS2010,.net 4.0 构建的)

补充:以下代码有同样的问题(在机器2上工作,而不是机器1)

    try
{
RichTextBox myRTB = new RichTextBox();
ListViewItem lvi1 = new ListViewItem();
lvi1.Content = myRTB;
this.lstView1.Items.Add(lvi1);
this.lstView1.Items.Remove(lvi1);
ListViewItem lvi2 = new ListViewItem();
lvi2.Content = myRTB;
this.lstView2.Items.Add(lvi2);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

最佳答案

您不应该将相同的控件分配为两个不同控件的子控件/内容。

至于您的问题,.NET Framework 4.5 中可能有所变化,放宽或修改了这种情况下的行为。即使您的应用以 4.0 为目标,它仍然在 .NET 4.5 运行时中执行。换句话说,.NET 4.5 取代了 .NET 4.0,而不是并行工作。

关于c# - WPF 在不同的环境中有不同的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com