首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gtk#和treeview:如何获得"选中"项目?

关于Gtk#和treeview:如何获得"选中"项目?

在Gtk#中,可以使用TreeView控件来实现树形视图,并且可以使用TreeSelection类来获取选中的项目。

以下是一个简单的示例代码:

代码语言:csharp
复制
using Gtk;
using System;

public class TreeViewExample : Window
{
    public TreeViewExample() : base("TreeView Example")
    {
        SetDefaultSize(400, 200);

        VBox box = new VBox(false, 2);
        Add(box);

        TreeView treeView = new TreeView(new TreeStore(typeof(string)));
        box.PackStart(treeView, true, true, 0);

        TreeViewColumn column = new TreeViewColumn("Items");
        treeView.AppendColumn(column);

        CellRendererText textRenderer = new CellRendererText();
        column.PackStart(textRenderer, true);
        column.AddAttribute(textRenderer, "text", 0);

        TreeStore store = (TreeStore)treeView.Model;
        store.AppendValues("Item 1");
        store.AppendValues("Item 2");
        store.AppendValues("Item 3");

        treeView.Selection.Changed += Selection_Changed;
    }

    private void Selection_Changed(object sender, EventArgs e)
    {
        TreeView treeView = (TreeView)sender;
        TreeSelection selection = treeView.Selection;

        TreeIter iter;
        if (selection.GetSelected(out iter))
        {
            TreeModel model = treeView.Model;
            string item = (string)model.GetValue(iter, 0);
            Console.WriteLine("Selected item: " + item);
        }
    }

    protected override void OnDeleteEvent(EventArgs e)
    {
        Application.Quit();
        base.OnDeleteEvent(e);
    }

    public static int Main(string[] args)
    {
        Application.Init();

        TreeViewExample window = new TreeViewExample();
        window.ShowAll();

        Application.Run();

        return 0;
    }
}

在这个示例中,我们创建了一个TreeView控件,并且添加了一些项目。然后,我们使用TreeSelection类来获取选中的项目,并且在控制台中输出选中的项目。

希望这个答案能够帮助到你!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mono 开发 (使用.NET技术的你,绝对不能忽略Mono)

自己的GUI API(Gtk#)。...第一章说明如何在各个操作系统上安装Mono,并介绍许多Mono网站资源。...第二章第三章很简单地介绍C#的语法Mono的基础API。如果你已经会C#微软的.NET Framework,那么这两章其实价值不高。...第四章第五章说明Gtk#,这是Mono特有的API,也是本书比较值得阅读的地方。第四章介绍GUI Layout的方式、对话盒、绘图、TreeView、数据拖放。    ...第八章介绍一些琐碎的主题,包括如何利用自动化的工具、如何写出跨平台的程序、如何使用IKVM、如何使用Basic。 这本书问世已经一年多了,由于Mono进步得很快,所以本书有一小部分的信息已经过时。

3.1K60
  • 关于WinForm TreeView的分享

    1、如果动态绑定TreeView,这个功能一般会在数据量不确定,需要去数据库或者其他途径获得数据,动态加载数据的时候使用。...获得选中的值。...但是这里有一个问题,无论我使用TreeView哪个事件都不能准确的获得选中的值,不管是click点击事件,还是mouseclick事件,点击获得的值都是上次点击事件的值,反正得到的值都不是正确的,查了网上很多文章...那么应该怎么办呢,几经波折找到了一个方法,供参考,通过tvData_AfterSelect事件的(TreeNode)e.Node可以获得选中节点,而且不会出错,试过很多次,基本没问题,这个方法还是有一点小问题...SetNodeCheckState((TreeNode)e.Node); string SelectData = ((TreeNode)e.Node).Text;//获得选中

    1K40

    treeview插件使用:根据子节点选中父节点

    鄙人公司没有专门的前端,所以项目开发中都是前后端一起抡。最近用bootstrap用的比较频繁,发现bootstrap除了框架本身的样式组件外,还提供了多种插件供开发者选择。...本篇博文讲的就是bootstrap的一个树形插件bootstrap-treeview。   最近项目权限模块中,需要将用户菜单做成可配置的。...博主开发的时候也是问了度娘,但很多网友的分享让自己这样前端薄弱的人看得头大,所以项目功能实现后,特意整理了自己的简洁实现,如博友有更好的方法,欢迎告知,共同进步。   ...基于同样的思想,要想实现选中某一子节点后同时选中所有的父节点,那么只需要在代码中继续添加:① 通过子节点判断父节点的存在;② 选中父节点;③ 递归判断。...正当我喜滋滋的以为功能实现了的时候,突然发现了很大的bug,就是在通过子节点选中所有父节点的功能实现中,选中是没有问题,可是当取消某个子节点,无论兄弟节点是否有选中,父节点都一并被取消掉了。

    6K40

    【愚公系列】2023年11月 Winform控件专题 TreeView控件详解

    以下是示例代码,演示如何在使用TreeView控件时更改其HideSelection属性:private void Form_Load(object sender, EventArgs e){ /...它通常用于显示节点的选中状态、展开状态折叠状态等。...每个节点具有三种基本状态:未选中、部分选中选中状态。可以使用节点对象的Checked属性来设置节点的选中状态,使用TreeNodeStates枚举类型来设置节点的折叠展开状态。...(childNode2);// 将根节点添加到TreeView控件treeView1.Nodes.Add(rootNode);在这个例子中,根节点子节点2的状态是未选中,使用索引0的状态图像;子节点1...3.具体案例下面是一个Winform中TreeView控件的完整案例,这个案例演示了如何使用TreeView控件来展示文件系统的目录结构,并且可以通过TreeView控件选择文件夹、展开折叠节点。

    72912

    WinForm TreeView的一点用法

    TreeView一般都包含父节点子节点,常规情况下有以下几种情况: 1.选中父节点之后,该父节点下面的所有子节点都被选中,取消选择父节点,则该父节点下面所有的子节点全部跟着取消选择。...2.如果某一个父节点下面有任何一个子节点被选中,那么该父节点也是处于选中状态。 3.如果某一个父节点下面最后一个处于选中的子节点被取消选中的话(这句话貌似有点绕口),该父节点也要处于取消选中的状态。...上面的所有菜单组以及子菜单全部都勾选上,如果我点击“普通用户”,则那些系统设置相关的内容都不勾选,这就是需求,下面我们来看看如何实现这个需求: 首先,我根据不同的角色返回了一张表或者是一个集合,当用户点击角色名称的时候就已经获取到了这个表或者集合...,我们要做的就是匹配界面上面TreeView里面的所有节点返回来的那一张Table或者集合,如果能够完全匹配,那么就将其Checked属性设置为True,否则不理它,这里用到了递归来遍历这棵树,递归代码如下...: /// /// 递归遍历TreeView,然后对比已有的数据TreeView上面的节点数据, /// 如果匹配成功,则选中TreeView上面的相应节点

    1.3K10

    dotnet 在 UOS 国产系统上使用 MonoDevelop 创建 GTK 全平台带界面应用

    本文告诉大家如何在 UOS 国产系统上开始使用 MonoDevelop 开发,通过创建 GTK# 应用,进入界面开发的第一步 在开始之前需要小伙伴先安装好 MonoDevelop 工具 安装完成之后,可以在开始菜单找到这个...打开之后,点击新建项目 ?...选择新建 GTK# 2.0 的项目,点击下一步,选择路径,加上项目名 请小伙伴记录这个路径,因为 UOS 的资源管理器做的比较弱,需要咱自己通过控制台去找到这个路径 其实MonoDevelop就是基于...GTK# 作为底层渲染的,因此能做到啥小伙伴大家看这个 IDE 也就有底了,有趣的是这个工具也是完全开源的 ?...新建的项目默认啥都没有,可以按下 F5 开始执行 此时就完成了构建逻辑了 可以在命令行里面通过 mono xx.exe 执行构建出来的工具,当前只有一个空白窗口啥都没有,但是这是一个好的开始

    84910

    Qt树形控件QTreeView使用1——节点的添加删除操作

    ")<<QStringLiteral("信息")); 上段代码将是添加两个表头,一个为项目名一个为信息,效果如下图:(已经 ui -> treeView_Pro -> setModel...->setModel(model); 效果: 1.3 条目的其他操作 1.3.1 获取当前选中的条目 通过QTreeView函数 currentIndex ()可以获取当前选中条目的...Widget::on_treeView_clicked(const QModelIndex &index) { QString str; str += QStringLiteral("当前选中:%...( const QModelIndex & index )是树形控件项目点击的槽响应函数 程序运行结果如下: 当点击频道1时,显示频道1, 当点击旁边的信息说明时选中的是频道...( const QModelIndex & index )的代码改一下,每点击一条目,无论点击哪里,都能获取它的“名称”“信息”: void Widget::on_treeView_clicked

    6.1K30

    原 基于HTML5 Canvas WebG

    这个例子用了 HT 中的树组件 ht.widget.TreeView HT 中加载 OBJ 格式文件的 ht.Default.loadObj 函数来加载图中的两辆摩托车,我们利用代码来从头开始解析这个例子的部分...接着要将最外层的组件添加进底层 div 中,没有阅读过我的文章的同学这边我解释一下,所有的 HT 组件最根层都是一个 div 组件,可通过组件的 getView 函数获得,默认自定义交互时间监听一般添加在该...我们利用 ht.Default.parseObj 函数解析获得每个材质的模型信息,通过遍历整个模型,获得单独的模型信息,并且将其命名,这样我们就能显示每个模型的名称了,也能对每个部分的模型进行控制。...Seperate Scooter,我们定义 loadTask 变量值为 2,上面代码的意思是如果两个模型都加载完毕,那么就将树组件 treeView 展开,并且全部选中,再用代码控制 toolbar 中的值为...就会想到多选框,在这里 HT 确实是通过设置 setCheckMode 函数来设置多选框,这个函数的参数可为: null:默认值,不启用check选择模式 default:check模式的默认选择方式,即单击选中或取消选中

    75130

    为什么76%的物联网项目失败以及如何获得成功

    为什么76%的物联网项目失败?缺乏跨学科合作是一个核心因素,导致系统性问题,如网络安全漏洞。如果物联网行业不辜负围绕它的大肆宣传,行业领袖需要重新思考他们的方法。...在乐观的预测背后,思科报告说有76%的物联网项目失败了。 当您考虑物联网项目中涉及的人力财力时,这是一个惊人的百分比。 那么,大多数物联网项目失败或即将失败的原因是什么?物联网整体会失败吗?...作为回应,思科的物联网威胁防御系统可以扩展到更大的项目。同样,德勤(Deloitte)提供了一种使用机器学习低功耗硬件产品的解决方案。 公司还需要确保仅将经过适当保护的设备连接到网络。...这可能意味着拥有软件技能的硬件工程师能够使用无线网络的网络安全专业人员。 公司可以向行业以外的候选人开放,从而从新的思维方式中受益。...虽然这个行业确实面临着挑战,但我们可以说“不”,前提是行业领导者更认真地对待网络安全人才管理等诸多因素。 什么样的创新产业没有挑战? 作为企业个人,我们仅看到了该行业可以给我们带来的机遇。

    37200

    基于HTML5 Canvas WebGL制作分离摩托车

    这个例子用了 HT 中的树组件 ht.widget.TreeView HT 中加载 OBJ 格式文件的 ht.Default.loadObj 函数来加载图中的两辆摩托车,我们利用代码来从头开始解析这个例子的部分...接着要将最外层的组件添加进底层 div 中,没有阅读过我的文章的同学这边我解释一下,所有的 HT 组件最根层都是一个 div 组件,可通过组件的 getView 函数获得,默认自定义交互时间监听一般添加在该...我们利用 ht.Default.parseObj 函数解析获得每个材质的模型信息,通过遍历整个模型,获得单独的模型信息,并且将其命名,这样我们就能显示每个模型的名称了,也能对每个部分的模型进行控制。...Seperate Scooter,我们定义 loadTask 变量值为 2,上面代码的意思是如果两个模型都加载完毕,那么就将树组件 treeView 展开,并且全部选中,再用代码控制 toolbar 中的值为...就会想到多选框,在这里 HT 确实是通过设置 setCheckMode 函数来设置多选框,这个函数的参数可为: null:默认值,不启用check选择模式 default:check模式的默认选择方式,即单击选中或取消选中

    1.2K50

    呼叫中心项目学习总结

    这几天一直在学习呼叫中心项目视频教程,跟着学习了下这个项目的一些关键知识点,现在回顾梳理一下重点: 一、三层架构设计+代码生成器:   复杂项目不能把SQL语句直接写到程序里,不模块化、难以维护,应该采用三层架构...具体如何实现?...如何实现复合检索:动态设定SQL语句!!   注意:虽然SQL语句也是动态拼接的,但是SQL语句的所有内容都是程序员自己写的,不存在客户输入介入的时机,所以拼SQL语句的过程没有注入漏洞攻击!...在VS中实现树状结构最简单的就是利用TreeView控件!深入TreeView,我们会发现在选择项发生变化的时候在TextBox中显示当前选择项的值。AfterSelect事件。...= DialogResult.OK) { return; } //获得选中节点(父节点)的模型对象

    2.9K31

    Qt Model View TreeView及对应Model

    ", "222", "333"); //在first节点上再添加一个数据 preparedRow.first()->appendRow(secondRow); //view 设置model并全部展开 treeView...->setModel(standardModel); treeView->expandAll(); //添加数据节点的函数 QList MainWindow::prepareRow...获得所选Item的内容以及层级 有了上面的基础,接下来进行扩展: 当treeView的Item被选中时,treeView 的selectionModel会发出selectionChanged的信号,将该信号与槽函数进行连接...,在槽函数中我们可以通过index获得所选Item的内容;通过顶层节点没有parent的特点来计算所选Item的层级。...三、小结 ①Model/View中要想通过TreeView显示树型结构,需要在QStandardItemModel中组织树形数据结构 ②通过index计算树形结构层级的方式 ③通过index可以Item

    2.6K30

    如何维护管理开源项目

    欢迎大家来踩踩~ 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~ 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~ 如何维护管理开源项目?...摘要 本文将为您详细介绍开源项目的维护管理方法,从项目的初始化到持续集成、社区互动以及问题追踪等方面提供实际建议和代码案例。 引言 开源项目的维护管理并不是一件简单的事情。...,它应当包括如何安装、使用项目以及如何项目做出贡献的说明。...以上是一些开源项目维护管理的基本策略方法。当然,不同的项目可能有不同的情况需求,因此灵活调整这些方法以适应您的项目是很重要的。同时,积极参与社区借鉴其他成功项目的经验也是不错的方法。...总结 维护管理开源项目需要细致的规划持续的努力。

    15410
    领券