小编Fas*_*tAl的帖子

将类似构建的WinForms.Form实例序列化为VB或C#源代码,就像IDE一样

我有大约500个由旧应用程序从XML文件动态生成的WinForms.我想自动将这些转换为我可以在设计器中编辑的VB或C#代码.

我可以手工完成,这需要永远......

或编写装入每个XML,调用旧的应用程序的XML到WinForm的建设者将其转换为一个完整的WinForm的应用程序,并检查每个控件的属性和使用StringBuilder来生成代码,设计师会吞噬.充其量只会是艰巨的.

但是:我想使用设计师使用的相同代码.我认为这将节省我的时间与角落案件.

我想要做的是,采取已建成的WinForm对象,以控制阵列全子控件(由旧的应用程序创建的XML到WinForm的代码),在IDE使用序列化设计的形式相同的代码把它到CodeDom,并获取我可以用真实语言保存的CodeDom语句列表.一旦我拿到CodeDOM,我会很高兴!

编辑

这个Codeproject文章体现了我想要做的事情的"概念":从一个完整的表单开始,将其转换('序列化')作为代码.然而,它有两个缺少:(1)它产生使用模板/ StringBuilder的.aspx页,而且那里的属性是(对于web表单细,但WinForms的串行化性质成实际.Designer.vb文件); (2)它是从头开始做到这一切的.我想重新使用visual studio的例程.他们允许您使用许多内容执行此操作,例如,属性网格.我只是想找到一篇文章的链接(也许我的google-fu太弱了),或者是某个人已经做过的短代码示例.

c# vb.net codedom design-surface

3
推荐指数
1
解决办法
1070
查看次数

.Net的Linq/IEnumerable中CAR和CDR的扩展方法等价物

我知道你可以说SomeEnumerable.First().但是没有.Rest.

我知道我可以写一个,但我想知道我是否遗漏了一些东西.

相关问题: 汽车,cdr和cons是否有红宝石?

c# linq ienumerable

3
推荐指数
1
解决办法
504
查看次数

JqueryUI工具提示可防止<select>元素下拉列入IE 11

当我在IE 11中打开此HTML并允许编写脚本时,单击下拉列表会使其闪烁并立即消失.有任何想法吗?

这是一个更大的应用程序,具有样式和其他元素,但这是重现它的最小值.

我留下了一些技巧,我试图抵消这一点 - 在onclick和onmouseover你可以看到我试图删除属性的脚本.但是,无论什么打破,下拉列表已经损坏了它.当我删除HTML顶部的脚本以显示工具提示时,甚至会发生这种情况; 它没有出现,但下拉列表仍然被打破.

<html>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
  <script type="text/javascript" src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
    <script type="text/javascript">
        $(function () {
            $("[data-tooltip-open=true]").tooltip({
                items: "[data-content=true]", content: $(this).data('content'),
                position: {
                    my: "center bottom-20",
                    at: "center top",                    
                    using: function (position, feedback) {
                        $(this).css(position);
                        $("<div>")
                          .addClass("arrow")
                          .addClass(feedback.vertical)
                          .addClass(feedback.horizontal)
                          .appendTo(this);
                    }
                }
            }).tooltip("open");
        });
    </script><body>
<form>
<select name="test"   
title="A selection from this list is required." 
data-tooltip-open="true" data-content="true" 
onclick="$(this).attr('data-tooltip-open','false');$(this).attr('title','');$(this).attr('data-content','false');" 
onmouseover="$(this).attr('data-tooltip-open','false');$(this).attr('title','');$(this).attr('data-content','false');">
 <option value=""></option>
 <option value=" "> </option>
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
 <option value="3">Option 3</option>
</select>
</form>
</body> …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery jquery-ui

3
推荐指数
1
解决办法
1695
查看次数

在另一个表单中显示Winform"表单",就像它是用户控件一样

编辑

这个问题的答案虽然是一个明显的解决方案,但对于这种情况来说还不够.我在原来的问题中加粗了这个原因,解释了为什么我希望它"完全回答" - 感谢LarsTech!

我原来的问题:

我有一个包含100个WinForms 表单屏幕的库,它是"Beyond My Control",我可以在我的应用程序中共享一些.但是,我的应用程序使用选项卡控件,我需要表单的内容显示在选项卡中而不是弹出窗口.

当我尝试新建其中一个表单并将其添加到选项卡的控件集合时,我收到以下错误消息:

顶级控件无法添加到控件中.

谁知道怎么解决这个问题?我知道还有其他方法涉及更好的架构,但截止日期,积压和富有的新客户等待着.[叹/]

private void button1_Click(object sender, EventArgs e)
{
  //panel1.Controls.Add(new Button());
  Form f = new Form();
  f.Controls.Add(new CheckBox());
  //f.ShowDialog();
  panel1.Controls.Add(f);
}
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net winforms

2
推荐指数
1
解决办法
592
查看次数