小编Jar*_*Par的帖子

Visual Studio - TabControl.TabPages.Insert无效

这是我的代码:

    public MainForm()
    {
        InitializeComponent();

        MyServiceSettings obj = (MyServiceSettings)ConfigurationManager.GetSection("MyServiceSettings");

        foreach (MyServiceConfigElement service in obj.Services)
            CreateServiceControl(service);
    }

    private void CreateServiceControl(MyServiceConfigElement service)
    {
        TabPage tp = new TabPage(service.Name);
        tabControl1.TabPages.Insert(0, tp);
        //tabControl1.TabPages.Add(tp);
        tabControl1.Refresh();    
    }
Run Code Online (Sandbox Code Playgroud)

简而言之,它读取配置文件中的一个部分,并为该部分中的每个元素创建一个选项卡.

我已经在设计时创建了一个静态TabPage.我希望在此静态选项卡之前插入动态创建的选项卡.

运行此代码时,tabcontrol仅显示静态标签页.

如果我做这个改变:

        private void CreateServiceControl(SoftInfoServiceConfigElement service)
    {
        TabPage tp = new TabPage(service.Name);
        //tabControl1.TabPages.Insert(1, tp);
        tabControl1.TabPages.Add(tp);
        tabControl1.Refresh();
    }
Run Code Online (Sandbox Code Playgroud)

使用Add方法显示所有页面.但我没有得到我想要的订单.

使用Insert方法有什么我不理解的东西吗?它为什么工作?

c# tabcontrol tabpage winforms

20
推荐指数
2
解决办法
7261
查看次数

为什么不能在即时窗口中评估lambdas?

有什么特别的原因吗?它根本不可能或者它还没有实现吗?也许有任何第三方插件允许lambda评估?

更新:

我在codeplex Extended Immediate Window上找到了这个项目.似乎已经放弃了一段时间,但这可以证明一个概念.有没有人知道任何其他即时窗口扩展插件?那些可以在C#中运行/ foreach语句的例子?

c# debugging lambda visual-studio

20
推荐指数
2
解决办法
9637
查看次数

避免或接受破坏编辑和继续的C#构造?

我开发并维护一个用C#2.0编写的大型(500k + LOC)WinForms应用程序.它是多用户,目前部署在大约15台机器上.系统的开发正在进行中(可以被认为是一个永久的测试版),并且很少有人能够保护用户免受可能在每周构建中引入的潜在新错误的影响.

出于这个原因,我发现自己变得非常依赖于调试器中的编辑和继续.它不仅有助于寻找漏洞和修复漏洞,而且在某些情况下还可以进行持续开发.我发现能够在正在运行的应用程序的上下文中执行新编写的代码非常有价值 - 不需要重新编译并为新代码添加特定的入口点(必须添加虚拟菜单选项,按钮等等)应用程序并记住在下一个生产构建之前删除它们 - 所有内容都可以在不停止进程的情况下实时进行测试和测试.

我坚持编辑并继续这么高的考虑,我积极地编写代码以完全兼容它.例如,我避免:

  • 匿名方法和内联委托(除非完全不可能重写)
  • 通用方法(稳定,不变的实用程序代码除外)
  • 以'任何CPU'为目标的项目(即永远不会以64位执行)
  • 在声明点初始化字段(初始化移动到构造函数)
  • 编写使用的枚举器块yield(实用程序代码除外)

现在,我完全清楚C#3和4中的新语言功能在很大程度上与编辑和继续(lambda表达式,LINQ等)不兼容.这是我拒绝将项目迁移到更新版本的框架的原因之一.

我的问题是,避免使用这些更高级的结构来支持非常非常容易调试的代码是否是一种好的做法?这种发展是否合法,还是浪费?另外,重要的是,这些构造中的任何一个(lambda表达式,匿名方法等)是否会产生性能/内存开销,这些代码可以避免编写良好,编辑和继续兼容的代码?...或者C#编译器的内部工作方式是否使这些高级构造比手动编写的"扩展"代码运行得更快?

c# debugging lambda anonymous-methods edit-and-continue

20
推荐指数
2
解决办法
1619
查看次数

如何在c#中只编译一个文件?

在VC++中,我可以按CTRL + F7编译单个文件,或者右键单击源文件或编译它.是否可以在C#中编译单个文件(或当前文件)?

我想知道我的当前文件是否有任何错误,而无需编译所有内容.

c# visual-studio

19
推荐指数
2
解决办法
8733
查看次数

vs2010 c#调试高亮颜色

场景是我正在调试vs2010中的一些C#代码.我在一个断点处停下来.我走进一个方法.当前行以黄色突出显示(我认为默认情况下).我在踏入方法之前离开的线现在具有浅灰色背景.如果你有一个黑暗的文字,不错,但我有白色文字.完全看不懂.

所以,我想改变它,但它叫什么?

c# debugging visual-studio-2010 visual-studio

19
推荐指数
1
解决办法
3979
查看次数

在git merge上覆盖作者

是否有像git-commit的git-merge这样的选项?

我们维护一个必须执行某些更改的暂存环境.一些限制使我们只使用一个Linux用户来访问登台环境.

无论如何,我们是一个有合作倡议的小团队,我们在做提交时告诉,哪一个是使用--author git-commit选项的作者.但是,有时我们需要从其他分支合并,这会导致非ff合并.这意味着在执行此合并时会执行提交.

在这种情况下,哪个是手动为合并提交指定作者的最佳方法?

git version-control git-merge branching-and-merging git-branch

19
推荐指数
3
解决办法
5719
查看次数

如何通过COM互操作在.NET对象上调用静态方法?

是否可以通过COM互操作在.NET对象上调用静态方法?

我知道我可以写一个包装类.如果我不想那样做怎么办?

.net com interop com-interop

18
推荐指数
1
解决办法
2086
查看次数

为什么我不能使用IntelliTrace for VS 2010检查局部变量?

在使用IntelliTrace进行调试期间导航到先前的调用/事件时,我看不到本地定义的变量值的快照.当鼠标悬停时,我收到消息"尚未收集到Intellitrace数据".有谁知道为什么?

.net debugging visual-studio-2010 visual-studio intellitrace

18
推荐指数
1
解决办法
3875
查看次数

Visual Studio和Visual Studio Express有什么区别?

我知道有一些基本的差异,比如没有插件等.但是如果我在工作中使用Visual Studio Pro并想在家里做一些ASP.NET MVC应用程序,我会发现Visual Studio Express是一个障碍吗?

visual-studio-2010 visual-studio-express visual-studio

17
推荐指数
2
解决办法
4万
查看次数

如何从Visual Studio 2010运行PowerShell脚本

如果我在Visual Studio中有.ps文件,我该如何在项目的上下文中运行它?

powershell visual-studio-2010 visual-studio

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