gpt4 book ai didi

c# - 如何获取计数并弹出消息框

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:21 26 4
gpt4 key购买 nike

我正在尝试让消息框显示元素,但是当我运行应用程序时消息框不会弹出

string xml = @"<?xml version='1.0' encoding='UTF-8'?>
<widgets>
<widget>
<url>~/Portal/Widgets/ServicesList.ascx</url>
<castAs>ServicesWidget</castAs>
<urlType>ascx</urlType>
<parameters>
<PortalCategoryId>3</PortalCategoryId>
</parameters>
</widget>
<widget>
<url>www.omegacoder.com</url>
<castAs>ServicesWidget</castAs>
<urlType>htm</urlType>
<parameters>
<PortalCategoryId>41</PortalCategoryId>
</parameters>
</widget>
</widgets>";

XDocument loaded = XDocument.Parse( xml );

var widgets = from x in loaded.Descendants( "widget" )
select new
{
URL = x.Descendants( "url" ).First().Value,
Category = x.Descendants( "PortalCategoryId" ).First().Value
};

MessageBox.Show("one");
foreach ( var wd in widgets ){
MessageBox.Show("two");

}

MessageBox.Show("一");出现。 MessageBox.Show("二");从不弹出

另外,如果我想查看小部件的数量怎么办>我是 C# 的新手谢谢

最佳答案

您可以将 LINQ 查询替换为:

var widgets = from x in loaded.Descendants("widgets").Descendants( "widget" )
select new
{
URL = x.Descendants( "url" ).First().Value,
Category = x.Descendants( "PortalCategoryId" ).First().Value
};

更新:LINQ 的两个版本都应该可以正常工作。我的错误是,Descendants 不仅可以指向直接嵌套的节点,还可以指向子树中的所有节点。

可能的问题原因:但是,请注意,为了显示第二个消息框,您必须关闭第一个消息框。我刚刚对此进行了测试并且它有效。

建议的解决方案:为了能够显示带有消息的多个对话框,您可以在项目中创建自己的表单类,实例化它并使用 Show() 方法显示它,即:您可以添加一个新的 Windows 窗体,将其命名为 MessageForm 并使用以下代码:

//MessageBox.Show(new Form(), "one");
MessageForm msgDlg = new MessageForm() { Message = "one" };
msgDlg.Show(this);
foreach (var wd in widgets)
{
//MessageBox.Show(new Form(), "two");
MessageForm msgDlgS = new MessageForm() { Message = "two" };
msgDlgS.Show(this);
}

它应该会按预期工作。

关于c# - 如何获取计数并弹出消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318440/

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