小编Pon*_*dum的帖子

启动时单个表单隐藏

我有一个带有一个表单的应用程序,在Load方法中我需要隐藏表单.

表单将在需要时显示自己(按照outlook 2003样式弹出框的思路),但我可以'弄清楚如何在没有杂乱的情况下隐藏表单.

有什么建议?

c# vb.net winforms

72
推荐指数
7
解决办法
11万
查看次数

为什么我们不允许在接口中指定构造函数?

可能重复:
定义构造函数签名的接口?

我知道你不能在.Net中的接口中指定构造函数,但为什么我们不能呢?

对于我当前的项目来说,能够指定必须使用构造函数传入"引擎"非常有用,但是我不能满足于对类的XML注释.

.net c# vb.net oop

51
推荐指数
5
解决办法
4万
查看次数

获取组件的父表单

我有一个非可视组件来管理其他视觉控件.

我需要引用组件正在运行的表单,但我不知道如何获取它.

我不确定添加一个构造函数与父指定为控件,因为我希望组件只是被放入设计器中工作.

另一个想法是让父母的财产作为控制,默认值为'我'

任何建议都会很棒

编辑:

为了澄清,这是一个组件,而不是一个控件,请参见此处:ComponentModel.Component

c# vb.net components winforms

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

是否可以使参数实现两个接口?

是否可以定义一个接受必须实现两个接口的参数的函数?

(这两个界面是我刚想到的那个界面;不是我想要使用的界面)

private void DoSomthing(IComparable, ICollection input)
{

}
Run Code Online (Sandbox Code Playgroud)

.net c# parameters interface

23
推荐指数
2
解决办法
4400
查看次数

测试大型状态机的策略是什么?

我继承了一个庞大且相当复杂的状态机.它有31种可能的状态,都是真正需要的(大业务流程).它有以下输入:

  • 枚举:当前状态(所以0 - > 30)
  • 枚举:来源(目前只有2个条目)
  • 布尔值:请求
  • 布尔值:类型
  • 枚举:状态(3个州)
  • 枚举:处理(3个州)
  • 布尔值:已完成

将其分解为单独的状态机似乎不可行,因为每个状态都是不同的.我为最常见的输入编写了测试,每个输入有一个测试,所有输入都是常量,除了State.

[Subject("Application Process States")]
public class When_state_is_meeting2Requested : AppProcessBase
{
    Establish context = () =>
    {
        //Setup....
    };

    Because of = () => process.Load(jas, vac);

    It Current_node_should_be_meeting2Requested = () => process.CurrentNode.ShouldBeOfType<meetingRequestedNode>();
    It Can_move_to_clientDeclined = () => Check(process, process.clientDeclined);
    It Can_move_to_meeting1Arranged = () => Check(process, process.meeting1Arranged);
    It Can_move_to_meeting2Arranged = () => Check(process, process.meeting2Arranged);
    It Can_move_to_Reject = () => Check(process, process.Reject);
    It Cannot_move_to_any_other_state = () => AllOthersFalse(process);
}
Run Code Online (Sandbox Code Playgroud)

没有人完全确定每个状态和输入集的输出应该是什么.我已经开始为它编写测试了.但是,我需要写一些像4320测试(30*2*2*2*3*3*2)的东西. …

c# unit-testing state-machine mspec

20
推荐指数
1
解决办法
4857
查看次数

"在对象浏览器中查看"的快捷键

有没有人知道在对象浏览器中是否有用于查看所选对象(在文本编辑器中)的快捷键?

我确信有一个,但我找不到它,或者似乎在键绑定对话框中工作的任何东西.

例如:

string test = string.empty;

if (string.isnullorempty(test))
{                          ^ caret here
    ...
}
Run Code Online (Sandbox Code Playgroud)

按下键将打开对象浏览器到System.String

keyboard-shortcuts visual-studio

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

在运行时添加控件的最佳实践

在运行时向表单添加控件时,您可以执行以下任一操作:

Button btn = new Button();
//...
this.Controls.Add(btn);
Run Code Online (Sandbox Code Playgroud)

要么

Button x = new Button();
//...
btn.Parent = this;
Run Code Online (Sandbox Code Playgroud)

我曾经假设它们是相同的,这只是个人偏好的方式来做,但是有人在工作中提到第二种方法更糟糕,因为当表格处理时按钮不会被处理掉(假设没有事件)处理程序已被添加并被保留).

这对我来说没有多大意义,所以我在网上看了一下,但找不到任何说法.

有人知道答案还是能指出我正确的方向?

.net c# vb.net controls dynamic

9
推荐指数
1
解决办法
3064
查看次数

在Delphi中对运行时和设计时包进行大惊小怪

我已经看到Delphi中的大多数组件(VCL)分为两部分.
1)DesignTime包
2)RunTime包

为什么这么大惊小怪.如果将RunTime和DesignTime包合并为一个包,它会有什么不同?

我从来没有真正理解这种分离逻辑.

那么这背后的逻辑是什么?

有人说,有人提到这种区别只是为了避免采用和遵循微软制定的组件标准.真的,这背后没有逻辑.

这是真的?

delphi vcl design-time packages runtime

7
推荐指数
2
解决办法
2890
查看次数

是否有检查CLS合规性的工具?

有没有一个工具可以分析我的.NET代码(C#和VB.NET),并告诉我为什么事情不符合CLS?

Visual Studio很高兴告诉我一个参数不符合CLS,但它不会让我更接近解决问题,因为我不知道原因.

示例Visual Studio错误:

参数'xyz'不符合CLS

.net cls-compliant

6
推荐指数
1
解决办法
1564
查看次数

在自定义/用户控件(Winforms)中为嵌套容器添加设计时支持

我有类似于向导控件的东西,中间是我想用来放置任何子控件的Panel.

我发现使用ScrollableControlDesigner将允许将删除的控件添加到custom/usercontrol,但这不是我需要的.它需要添加到容器中,因此可以应用布局而不会影响"外部"控件(标题,导航按钮).

我尝试了各种各样的方法,但没有用,看起来很笨拙.

有任何想法吗?

.net design-time winforms

5
推荐指数
1
解决办法
1967
查看次数