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

C#报错——(Winform) 某个线程创建控件不能成为一个线程创建控件的父级

问题点描述:   我新建一个线程,并在这个线程中,把某个控件的父级去掉或者更改,导致报这个异常 网上的解析如下:   “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体...”基于本机 Win32 窗口,而 Win32 窗口从本质而言是单元线程。...STA 模型意味着可以在任何线程创建窗口,但窗口一旦创建后就不能切换线程,并且对它的所有函数调用都必须在其创建线程发生。...STA 模型要求需从控件的非创建线程调用的控件的任何方法必须被封送到(在其执行)该控件创建线程。...如果您在控件中为大量占用资源的任务使用多线程,则用户界面可以背景线程执行一个大量占用资源的计算的同时保持可响应。 用人话描述为:控件是属于主线程(UI线程),不可以跨线程修改其父级。

3.2K41
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.NET TreeView相关问题

1、用代码treeview web控件中,添加node的方法 表字段:编号,父编号,名称 数据: 1 0 中华人民共和国 2 1 湖南 3 1 湖北 void creattree(string...selectedindexchange事件挂到控件没有? InitializeComponent方法中检查检查 4、如何判断 TreeView一个节点下是否有子节点???...,令应该是把自动响应事件改为“true”的,否则无法响应的, 虽然比较闪烁,并且每次都是回到第一节点的 9、点击treeview一个子节点,打开一个连接控制目标窗口,有没有办法?...我看了论坛所有有关这 方面的贴子,有人是服务器不显示树形,只是一些文字,我的是本机上都不显示 树形,只是一些文字。请各位大侠赐教!...11、treeview中如何查找一个值,并选中它? 问题: 各位,已经建好的树中如何查找一个文本或者是treenodes的id,找到后选中它?

1.3K81

WPF中非递归(无后台代码)动态实现TreeView

UI界面中,树形视图是比较常用的表示层级结构的方式,WPF中提供了TreeView控件。对于TreeView控件的基本使用已经有很多文章。...大都是介绍如何在XAML中使用硬编码的固定信息填充Treeview控件,或者是后台代码递归遍历数据源,动态创建TreeView。...这里我想介绍一下如何只通过XAML标记,不用一行后台代码遍历数据实现TreeView。 技术要点与实现 本文的技术关键点是层级式数据模板HierarchicalDataTemplate。...这是因为TreeView支持开启虚拟化(默认是关闭的,设置 VirtualizingPanel.IsVirtualizing="True"开启虚拟化),渲染界面是不会一次把所有UI元素全部创建好,而是根据屏幕可见区域计算需要渲染的元素个数...例如本例中有100w条数据,可见区能显示20条,TreeView创建了41个UI元素。为什么不是创建20个呢?这是由于为了确保良好的滚动性能,实际会多创建一些UI元素。

23940

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

TreeView控件还可以处理节点的选择事件,例如在节点单击鼠标时触发的事件。可以使用这些事件来处理节点的选择、展开、折叠等操作。此外,可以使用TreeView控件的搜索功能来查找特定的节点。...以下是使用ImageList和ImageIndex属性TreeView中显示文件树的示例代码:// 创建一个TreeView控件TreeView treeView1 = new TreeView();...控件到表单中this.Controls.Add(treeView1);在上述代码中,通过创建一个ImageList对象并添加两个图标,然后将ImageList设置到TreeView控件的ImageList...例如,以下代码将创建一个状态图像列表并将其分配给TreeView控件的StateImageList属性:// 创建状态图像列表ImageList stateImageList = new ImageList...首先,Winform的设计视图中添加一个TreeView控件一个Button控件

65612

VB.NET 为Treeview控件每个节点绑定独立的事件

TreeView树状控件,日常开发中我们会经常用到,但是我们使用的过程中,想要点击某个节点触发某个过程方法;我们(哦不,是我自己)日常的做法,是使用节点点击事件(NodeMouseClick或者...AfterSelect)去根据节点名称Name或者节点Text逐一判断然后触发某个过程,不能把每个节点当作一个按钮来操作;   那么有没有一种方式,把节点当作按钮一样的,绑定一个独立的事件呢?...本人百度一圈都是用上面说到的方式;但是我今天要说的就是利用 TreeView的节点Node的Tag附件属性,把每个节点的事件绑定到对应的Node的Tag属性;然后通过NodeMouseClick事件触发...一、首先创建一个字典委托 Private ReadOnly Event_handle As New Dictionary(Of String, EventHandler) 二、把事件过程添加到字典委托...并添加到TreeView控件 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

1.5K40

OEA 中 WPF 树型表格整体重构

控件直接在后台用 OEA 代码生成,本质作为一个 WinForm 控件来用。...当初为了实现树型表格控件,所以我们在网络搜索了大量文章,以下两篇是当时觉得最有用的:《CodeProject A Versatile TreeView for WPF_ Free source code...TreeGrid 不再依赖 TreeView、GridView,而是直接从 ItemsControl 继承下来,自定义逻辑树、可视树结构,自定义绘制过程。代码有点多,看下最终的效果: ? ?...而查看该方法源码,可以看到本质也是修改元素的内部状态属性 MeasureDirty。     当界面线程执行完逻辑处理后,会调用布局系统进行布局。...界面线程会在需要时不断地调用 Measure,我们可以把自定义控件中很多重要的逻辑都可以 MeasureOverride 中实现。

1.8K60

SplitContainer(拆分条控件)

可以将 Windows 窗体 SplitContainer 控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条时,指针将相应地改变形状以显示该拆分条是可移动的。...使用 SplitContainer 控件,可以创建复合的用户界面(通常,一个面板中的选择决定了一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。...,将创建一个类似于 Microsoft Outlook 中使用的多窗格用户界面,该界面中包含“文件夹列表”、“邮件”窗格和“预览”窗格。...此外,控件停靠边缘的大小将调整为与它的容器控件的大小匹配。有关 Dock 属性工作方式的更多信息,请参见如何: Windows 窗体停靠控件。...SplitContainer 控件的右侧面板中包含另一个 SplitContainer 控件,其中 ListView 控件 RichTextBox 控件上方。

2.2K20

WPF中Dispatcher的初步探讨

相信很多初步接触WPF的界面开发的朋友,为了保持界面不卡,一个自己创建线程中去更新或者读取一个控件时都会遇到了一个很奇怪的Exception异常,显示如下: ?...4)其他线程(非直接创建你要访问和控制UI控件线程)要访问和更新某个控件,必须通过创建这个控件线程(一般就是UI线程)所关联的Dispatcher来访问和更新这个控件。...实际不仅仅是Window类,其他控件也都继承自DispatcherObject,因此他们初始化时都自动赋值了Dispatcher属性,并且都指向同一个UI线程所拥有的Dispatcher对象。...Button }); } 我们发现,代码运行到myFun()时的线程已经变成了trd所创建线程(通过Thread.CurrentThread.Name来获知当前线程名称是个好办法...那有没有能获得的办法了呢?答案是肯定的。 可以通过Dispatcher类本身的static方法FromThread(Thread trd)来获得某个线程所拥有的Dispatcher。

63610

C# SplitContainer 控件详细用法

使用 SplitContainer 控件,可以创建复合的用户界面(通常,一个面板中的选择决定了一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。...,将创建一个类似于 Microsoft Outlook 中使用的多窗格用户界面,该界面中包含“文件夹列表”、“邮件”窗格和“预览”窗格。...此外,控件停靠边缘的大小将调整为与它的容器控件的大小匹配。有关 Dock 属性工作方式的更多信息,请参见如何: Windows 窗体停靠控件。...若要创建该用户界面,请将所有控件放到 SplitContainer 控件(其左侧面板中包含 TreeView 控件)中。...SplitContainer 控件的右侧面板中包含另一个 SplitContainer 控件,其中 ListView 控件 RichTextBox 控件上方。

2.7K30

PyQT模块、类、控件介绍

QtWidgets模块 包含了一整套UI元素控件,用于建立符合系统风格的Classic界面,非常方便,可以安装时选择是否使用此功能。...QFrame类 有框架的窗口控件的基类。它也被用来直接创建没有任何内容的简单框架,但是通常要用到QHBox或QVBox,因为它们可以自动布置放到框架中的窗口控件。...,可以包含多个命令按钮,通常放在QMainWindow的顶部 QListView控件 可以显示和控制可选的多选列表,可以设置ListMode或IconMode QPixmap控件 可以绘图设备显示图像...(长、宽) QRect:用来绘制矩阵 QThread:线程类 QTimer:计时器类 QObject:对象类 QUrl:URL类 QTime:时间类 QDate:日期类 QMutex:线程锁类 QFile...QImage:用于将图片显示在窗口上 QtWidgets常用控件类 QApplication:用于管理图形用户界面应用程序的控制流和主要设置,是PyQt的整个后台管理的命脉。

46031

vfp种树,一级树,无限级树,Qiyu_treeview控件使用超简单方法

先来看一下后台表,treedata1,id为自增型主键。...1.制作表单 2.使用MSSQLHelper来表单LOAD获取数据 DO setenv LOCAL oDBSQLHelper,nRow,oca &&会员类别表 TEXT TO lcSQLCmd...Endif 3.设置表单属性 如图设置树控件的属性值,displayfield=name,datafield=id qiyu_treeview控件属性说明 属性名 默认性 说明 mainalias...qiyu_treeview1的donodeclick刷新一下表单 LPARAMETERS node thisform.Refresh() 再来运行看看 运行成功,点击任一个树节点,右边的控件都会变化...无限级树的种法 后台表结构 极简 只比一级树多了一个字段 qiyu_treeview1的属性多设置一个fatherkey 为fid即可 其它的控件也是一样的设置,多添加一个组合框来显示fid的内容

39420

WPF Binding学习(四) 绑定各种数据源

2.ADO.NET中DataTable对象做为数据源     wpf中,是允许将DataTable直接做为Binding的数据源的,下面以一个例子做为参考    控件还可以用上面的控件,只需该数据源即可...然后我们构造函数中编写后台代码 ObjectDataProvider odp = new ObjectDataProvider(); //设置用于绑定源的对象...6.使用RelativeSource当绑定源  当一个Binding有明确的来源的时候,我们可以通过Source或者ElementName赋值的办法让Binding与之关联。...有些时候我们不能确定作为Source对象叫什么名字,但是我们知道它与做为Binding目标对象UI的相对关系,比如控件自己关联自己的某个数据,关联自己某级容器的数据,这时候就需要用到Binding的...Self:引用正在绑定的元素,允许你该元素的一个属性绑定到同一元素的其他属性。   FindAncestor:引用数据绑定元素的父链中的上级。

4.3K30

C# Web控件与数据感应之 TreeView 类 续篇

关于内置 TreeView 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,我的前期文章《C# Web控件与数据感应之 TreeView 类》,对于 Microsoft.Web.UI.WebControls.TreeView...两者的区别 Microsoft.Web.UI.WebControls.TreeView 属于微软的过去时控件,现在则升级为内置的 System.Web.UI.WebControls 集合,System.Web.UI.WebControls.TreeView...准备数据源 我们 MS SQL Server 创建 pub_area(区域表),其结构如下表: 序号 字段名 类型 说明 1 acode nvarchar(10) 区域代码,唯一键 2 aname nvarchar...控件,方法返回 int 类型,表示成功返回当前节点的节点数,其参数设置见下表: 序号 参数名 类型 说明 1 tv System.Web.UI.WebControls.TreeNodeCollection...是内置控件,因此Web页中直接引用命名空间即可直接使用,使用 VS 开发我们需要在 IDE环境解决方案中添加 System.Web 引用,如下图: 2、System.Web.UI.WebControls.TreeNode

8410

C# Web控件与数据感应之 TreeView

关于 TreeView 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,本文将继续介绍与数据库提取数据并捆绑到 TreeView控件。...使用和呈现大同小异,关键的区别在于 FlyTreeView不是免费的,即使使用破解版本可能也存在部分问题,这个使用中需要注意。...而Microsoft.Web.UI.WebControls.TreeView 和 System.Web.UI.WebControls.TreeView 是微软提供的内置控件,前者是 TreeView 的早期版本...准备数据源 我们 MS SQL Server 创建 pub_area(区域表),其结构如下表: 序号 字段名 类型 说明 1 acode nvarchar(10) 区域代码,唯一键 2 aname nvarchar...控件,方法返回 int 类型,表示成功返回当前节点的节点数,其参数设置见下表: 序号 参数名 类型 说明 1 tv Microsoft.Web.UI.WebControls.

5710

创建树状目录结构

标签:VBA,用户窗体,TreeView控件 我们都知道,使用TreeView控件可以创建树状目录结构,但如何创建,还是有些技巧,这就是本文要介绍的内容。...如图1所示,使用TreeView创建了树状目录结构。 图1 细心的朋友可能注意到,这个目录是根据工作表中的内容结构创建的。...只要我们按一定的规则在工作表中输入数据,代码就会根据这些数据创建出相应的分层目录结构。 如下图2所示,VBE中插入一个用户窗体,然后布置相应的TreeView控件和按钮控件。...图2 该用户窗体代码模块中,输入下列代码: Option Explicit Private Sub CommandButton1_Click() Dim intCount As Integer,...End With .Style = tvwTreelinesPlusMinusText End With End Sub 注意,这个示例可以作为模板,代码不变,只需修改工作表中的数据就可以创建相应的目录层次结构

21210

ASP.NET 2.0中建立站点导航层次

Web页面上提供站点导航的最简单办法就是使用图形化的站点导航控件(SiteMapPath、TreeView和 Menu)。...例子中的TreeView和Menu控件都连接到页面上的同一个SiteMapDataSource控件。...站点导航特性根据存储XML文件中的导航数据返回正确的节点。 下面的例子演示了一个带有简单的分页功能的用户控件显示的页面中,用户控件位于页面的底部中间。最初该链接的内容是"下一个主题"。...如果你点击页面左部的Treeview链接,可以看到用户控件是如何自动地显示适当的"前一个主题"和"后一个主题"链接的。用户控件还显示了另外一个超链接,你可以点击它返回主页。...示例web.sitemap中,第一个<siteMapNode>元素使用了显式资源表达式。显式表达式每个属性指定。第一个<siteMapNode>元素的Title属性使用了显式表达式。

7.1K10

创建可维护和可测试的 Windows 窗体应用程序的 10 种方法(译)

下面是创建可维护和可测试的 Windows 窗体应用程序的十个技巧。 1. 用用户控件隔离你的用户界面 首先,避免一个表单放置太多控件。...因此,如果你有一个资源管理器样式的应用程序,左侧是树视图,右侧是详细信息视图,则将 TreeView 放入其自己的 UserControl,并为每个可能的右侧视图创建一个 UserControl。...用接口创建被动视图 一种特别有用的技术是使你创建的每个窗体和用户控件都实现一个视图接口。此接口应包含允许设置和检索视图中控件的状态和内容的属性。...你的命令对象将有一个 Execute 方法,该方法实际包含为该命令执行所需行为的代码。许多情况下,这将涉及调用其他对象和业务服务,因此你需要将它们作为依赖项注入到命令对象中。...,这将大大简化应用程序中的任何线程代码,并自动处理回送后台任务完成后进入 UI 线程

1.3K10

Python GUI项目实战(二)主窗体的界面设计与实现

---- 一、基础界面设计 我们新建一个900x640的窗口,顶部加入图片,下面主体部分创建两个Panedwindow容器,左边添加按钮,右边作为TreeView显示界面; from tkinter import...self.Lable_image = Label(self,image = self.Login_image) self.Lable_image.pack() # 左边:按钮区域,创建一个容器...Panedwindow不支持修改前景色背景色 ?...二、添加查询区域 右边的Pannedwindow容器中,添加一个LabelFrame容器作为查询区域,LabelFrame容器中添加一系列的Label、Entry、Button控件,可以输入学号、姓名...三、加载Treeview控件 创建控件、设置对齐方式和每个列的标题 # 添加TreeView控件 self.Tree = Treeview(self.Pane_right,columns=("sno",

4.1K22
领券