当ComboBox的DropDownStyle是DropDownList并且DrawMode是Normal时 - 它看起来不错,但是当我将DrawMode更改为OwnerDrawFixed时 - 它看起来非常糟糕(类似于带有箭头的TextBox下拉).当DrawMode不正常时,有什么解决方案可以让它看起来很好吗?
看起来像那样:

我希望它看起来像那样:

我的名为S的类看起来像这样:
public class S : IDisposable
{
public void Dispose()
{
// some code
}
public void f()
{
throw new Exception("exception");
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用using语句时,f()方法不会调用s.Dispose()方法.我认为它应该调用Dispose方法,即使发生异常.这就是我在MSDN中读到的内容:"using语句确保即使在对象上调用方法时发生异常也会调用Dispose".我错过了什么吗?
using (S s = new S())
{
s.f();
}
Run Code Online (Sandbox Code Playgroud)
调用sf()会结束我的程序而不会丢弃我的对象.我想我不必使用try/catch,因为using语句应该为我做.
根据http://www.w3schools.com/js/js_htmldom_navigation.asp教程,元素属性也是节点.在下面的示例中,脚本仅显示元素节点.
<!DOCTYPE html>
<html>
<body>
<a href="#">link</a>
<p id="demo"></p>
<script>
var n = document.body.childNodes;
var s = "";
for (var i = 0; i < n.length; i++)
s += n[i].nodeName + "<br>";
document.getElementById("demo").innerHTML = s;
</script>
some text
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
结果(节点名称)是:
#text
A
#text
P
#text
SCRIPT
Run Code Online (Sandbox Code Playgroud)
我猜#text是换行符的节点名称等(但我不知道为什么SCRIPT之后的文本没有显示为#text).
为什么它没有显示href属性?即使我试图查看锚元素的所有子节点,它只显示内部的文本节点.
我正在尝试加载WebBrowser内容,之后我想添加一些文本并滚动到底部.
这是我的代码示例:
webBrowser1.Url = new System.Uri("file:///" + filePath);
webBrowser1.Document.Body.InnerHtml += text;
webBrowser1.Document.Body.ScrollTop = webBrowser1.Document.Body.ScrollRectangle.Height;
Run Code Online (Sandbox Code Playgroud)
当我运行它时,有一个未处理的异常"对象引用未设置为对象的实例".或者,当我评论进行滚动的行时,文本将添加到WebBrowser的先前内容中,然后导航到新内容.
所以在我的示例代码的第一行之后我放了:
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
Run Code Online (Sandbox Code Playgroud)
但它搞砸了一切.我的应用程序正在做一些非常奇怪的事情,例如,当它应该被调用一次时,多次调用相同的方法.
有什么解决方案吗?