是否有一种简单的方法来确定它在WindowState = Normal中具有的Form的大小,而不实际更改Form状态?
这是我现在做的(C#代码):
public class MyForm: Form
{
public void MyMethod()
{
// ...
FormWindowState oldState = this.WindowState;
this.WindowState = FormWindowState.Normal;
Point windowLocation = this.Location;
Size windowSize = this.Size;
this.WindowState = oldState;
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我希望代码看起来像:
public class MyForm: Form
{
public void MyMethod()
{
// no state change here
Point windowLocation = this.NormalStateLocation;
Size windowSize = this.NormalStateSize;
}
}
Run Code Online (Sandbox Code Playgroud)
事实上,Windows窗体中没有NormalStateLocation或NormalStateSize属性.
在很多TDD教程中,我看到这样的代码:
public class MyClass
{
public void DoSomething(string Data)
{
if (String.IsNullOrWhiteSpace(Data))
throw new NullReferenceException();
}
}
[Test]
public DoSomething_NullParameter_ThrowsException()
{
var logic = MyClass();
Assert.Throws<NullReferenceException>(() => logic.DoSomething(null));
}
Run Code Online (Sandbox Code Playgroud)
这一切都有意义,但在某些时候你将会到达实际使用MyClass的类,并且你想测试异常是否被处理:
public class EntryPointClass
{
public void DoIt(string Data)
{
var logicClass = new MyClass();
try
{
logicClass.DoSomething(Data);
}
catch(NullReferenceException ex)
{
}
}
}
[Test]
public DoIt_NullParameter_IsHandled()
{
var logic = new EntryPointClass()
try
{
logic.DoIt(null);
}
catch
{
Assert.Fail();
}
}
Run Code Online (Sandbox Code Playgroud)
那么为什么不把my/class中的try/catch放在首先,而不是抛出异常,并在MyClass单元测试类中测试为null,而不是在EntryPointClass单元测试类中?
我有一个包含宏中文件列表的Nmake Makefile:
MYSRCFILES1=myfolder\file1.svg myfolder\file2.svg ... myfolder\file99.svg
Run Code Online (Sandbox Code Playgroud)
和第二个就像这样:
MYSRCFILES2=myfolder2\file1.svg myfolder2\file2.svg ... myfolder2\file99.svg
Run Code Online (Sandbox Code Playgroud)
我正在尝试的是避免重复文件列表,并避免重复文件夹名称,如下所示:
MYSRCFILES0=file1.svg file2.svg file3.svg
MYSRCFILES1="prepend 'myfolder\' to each element of $(MYSRCFILES0)"
MYSRCFILES2="prepend 'myfolder2\' to each element of $(MYSRCFILES0)"
Run Code Online (Sandbox Code Playgroud)
通过Nmake的文档挖掘自己到目前为止我还没有找到解决方案.知道怎么做到这一点?
我在Excel VBA中有一个报告生成器,到目前为止一直有效.它读取一些输入数据并生成格式化的Excel工作表作为结果.本表的最后一列填充了某种自由文本.
现在,有时自由文本不适合最后一列,它太宽了.由于此报告的所有行的行高都是固定的,因此我无法range.WrapText=True为此列设置(要让文本保持可见,必须增加行高).手动(非VBA)解决方案很简单:将文本分成几个部分并将其分布在不同的行上.例如:
A | B |C
content |This text is too wide for column B.
here |This text fits. |
is | |
fixed | |
Run Code Online (Sandbox Code Playgroud)
应该转化为
A | B |C
content |This text is too |
here |wide for column |
is |B. |
fixed |This text fits. |
Run Code Online (Sandbox Code Playgroud)
如果我能够使用VBA确定B列中内容的实际文本宽度(使用比例字体!),我可以轻松编写代码.range.ColumnWidth给出了列的实际宽度,但我不知道如何确定"此文本对于列B来说太宽".在VBA中.有什么建议?
(我目前正在使用Excel 2002/XP).
c# ×3
.net ×2
winforms ×2
datagridview ×1
excel ×1
makefile ×1
nmake ×1
unit-testing ×1
vba ×1