当前位置: 首页 > 知识库问答 >
问题:

在一个窗口窗体中关注多个列表视图

屠君墨
2023-03-14

我有一个窗口窗体,包含两个列表视图(例如,命名为a和b)和一个按钮。当两个列表视图之间有焦点时,按钮的功能应该是以不同的方式显示消息框。

所以按钮的代码是

if (a.Focused)
   MessageBox.Show("a");
else
   MessageBox.Show("b");

然而,当我在“b”列表视图中选择该项时。它总是返回MessageBox。节目(b)。当我重新开始并在“a”列表视图中选择一个项目时,它会给我一个空引用异常

代码有什么问题吗?

共有1个答案

白高超
2023-03-14

这是因为当你点击按钮时,它是聚焦的。所以它总是显示“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个测试,但是当我运行这些测试时,它们会为每个测试打开一个新的浏览器窗口。 我在注册测试用例中运行它,然后 在第二个测试用例中运行,我认为应该将焦点放回第一个窗口。 我还使用关闭正在创建的其他窗口,但我希望它们一开始就不打开。