我有一个窗口窗体,包含两个列表视图(例如,命名为a和b)和一个按钮。当两个列表视图之间有焦点时,按钮的功能应该是以不同的方式显示消息框。
所以按钮的代码是
if (a.Focused)
MessageBox.Show("a");
else
MessageBox.Show("b");
然而,当我在“b”列表视图中选择该项时。它总是返回MessageBox。节目(b)。当我重新开始并在“a”列表视图中选择一个项目时,它会给我一个空引用异常。
代码有什么问题吗?
这是因为当你点击按钮时,它是聚焦的。所以它总是显示“b”,因为listview a没有聚焦。
这里有一个建议:保存最新的聚焦listview,并在两个listview中创建一个GotFocus
事件(它不在设计器中,所以按编程方式创建),单击按钮时检查最新的聚焦listview是什么:
//Put this code after InitializeComponent();
ListViewA.GotFocus += ListViewFocus;
ListViewB.GotFocus += ListViewFocus;
...
private ListView Latest = null;
private void ListViewFocus(object sender, EventArgs e)
{
Latest = (sender as ListView);
}
private void Button_Click(object sender, EventArgs e)
{
if (Latest == null) MessageBox.Show("No listview is focused");
else if (Latest.Name == "ListViewA") MessageBox.Show("a");
else MessageBox.Show("b");
}
如果您想再次使空,还有一个LostFocus
事件。
我不知道为什么会出现空引用异常。是什么引起的?
首先感谢您的关注。我正试图在一个视图中处理多个表单,但a对此并不幸运。 view.php 结果如下: 和控制台输出(无错误) 我想我已经选择了正确的方式来渲染我所有的模型对象的形式?哈?
我有两条流: 测量 WhoMeasured(关于谁进行了测量的元数据) 这些是它们的案例类: 流包含大量数据。流几乎没有任何可用性。事实上,对于<code>who_measured_id</code>流中的每个<code>who_。这本质上是一个哈希表,由流填充。 在我的自定义窗口函数中 这是我的工作。现在你可能会看到,有一些东西不见了:两个流的结合。 因此,从本质上讲,这是一种查找表,当流中的新
问题内容: 我是GUI编程的新手,但需要创建一个多窗口GUI。有谁知道在线上有什么好的教程,或者您能显示一个可以启动2个窗口的简单代码吗? 问题答案: 只需创建两个JFrame对象,如下所示:
问题内容: 我是一个学习敏捷的初学者。在这里的第一篇文章。 额外信息,但可能不必要。 在我创建的此应用中,用户在主View控制器上选择一个图像,并将其传递给第二个View控制器。在那里,图像被分解成碎片,并将这些碎片放置在单独的UIImageViews中。目的是通过交换图像以正确的顺序放置它们。 一切正常,并且在模拟器中运行正常。但是,我试图添加基本动画(移动UIImageViews),但是它们没
假设有一个测试页面,其代码如下所示。 <!DOCTYPE HTML> <html> <head> <script type="text/javascript"> function output(resultText){ document.getElementById('output').childNodes[0].nodeValue=resultText; }
目前,我已经开始使用Selenium2.0/Web-Driver为我工作的公司进行自动化测试。 目前我已经开发了大约20个测试,但是当我运行这些测试时,它们会为每个测试打开一个新的浏览器窗口。 我在注册测试用例中运行它,然后 在第二个测试用例中运行,我认为应该将焦点放回第一个窗口。 我还使用关闭正在创建的其他窗口,但我希望它们一开始就不打开。