线程中是不允许直接操作窗体空间的 怎么解决呢?...然后我想在类中对空间进行操作,这样还可以么?...哎呦,卧槽 运行不报错 但是文本框中是空的,怎么办?...主窗体: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...主窗体代码不变 class1代码: using System; using System.Collections.Generic; using System.Linq; using System.Text
主窗体程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data...解决办法: 将窗体作为参数传入类,然后可以根据属性来对其进行相应的操作 实例修改如下: 主窗体程序: using System; using System.Collections.Generic;...运行结果:别忘了将主控件的modifiers属性改为public ? 这种方法简单实用!这种方法简单实用!这种方法简单实用!这种方法简单实用!这种方法简单实用!这种方法简单实用!这种方法简单实用!
本文转载:http://www.cnblogs.com/Ricky81317/archive/2007/01/04/611942.html 近日开发了一些自定义控件,其中一个需要自定义一下设计时属性浏览器中的属性编辑器...,因此从UITypeEditor中派生了一个类,我需要从窗体上遍历到所有TextBox显示到我自定义的属性编辑器中。...具体可以在 override 的 EditValue方法中实现: public override object EditValue(System.ComponentModel.ITypeDescriptorContext
废话不多直接上菜 image.png 下载.gif /* 注意:只要不带焦点的控件包括用户控件 都可以拖动与拖拽大小 【基类中的【公共参数】可以自行修改哦】...(); //执行以下方法就可以拖拽了[this属于窗体的对象,小范围拖拽可以自建布局容器] dragControlsHelper.Insert(控件的对象或者控件的Name..., this); //移除拖拽大小与移动也很简单 dragControlsHelper.Remove(控件的对象或者控件的Name); //WPF中布局容器有...窗体太小时,其末尾的控件会自动换行,像Java中的流布局; [Canvas]坐标布局,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom... /// 窗体的布局容器:意思就是这个控件是被谁包这的就传它,我一般传窗体对象,窗体包着所有的控件,小范围拖动
由于 Windows 窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态。...还可能出现其他与线程相关的 bug,包括争用和死锁的情况。...于是在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException 本文用一个很简单的示例来讲解这个问题(在窗体上放一个...TextBox和一个Button,点击Button后,在新建的线程中设置TextBox的值) 解决办法一: 关闭该异常检测的方式来避免异常的出现 经过测试发现此种方法虽然避免了异常的抛出,但是并不能保证程序运行结果的正确性...(比如多个线程同时设置TextBox1的Text时,很难预计最终TextBox1的Text是什么) using System; using System.Collections.Generic; using
学习Excel技术,关注微信公众号: excelperfect 在开始阅读本文前,请先学习下列内容: Excel实战技巧66:创建向导样式的数据输入窗体1 Excel实战技巧66:创建向导样式的数据输入窗体...接下来,设置一些类来使用户窗体工作。在一开始,你可能会认为一个与数据记录相联系的类就满足要求了,但我们将在定义类时分解功能,设计一两个类帮助定义向导步骤。...最终,将实现一个灵活的向导应用程序,提供非常容易修改步骤的顺序的能力,甚至添加一个步骤也相当简单。...HRWizard中的类 由于正收集的某些员工信息将被传递给其它部门去处理,因此在自已的类中放置从每个屏幕中获得的数据。...还需要一个监控向导步骤的类,同时考虑一个帮助使用ListMgr工作表中数据填充列表的类。下表列出了每个类及其功能。 表:HRWizard应用程序类模块 ?
基本上 Xamarin 和 WPF 的技术是相同的,但是有一些小细节和属性不同,本文记录一些不同的点,方便小伙伴将 WPF 项目迁移为 Xamarin 项目 需要注意的是 Xamarin 原生支持作为...WPF 控件运行,支持在 WPF 运行,反过来不可以 也就是用 Xamarin.Forms 写的应用能作为 UWP 和 WPF 应用运行,也可以作为 Android 和 IOS 运行,也可以使用 GTK...本文只是告诉大家如何从一个已有的 WPF 项目迁移到 Xamarin 上 控件 通用控件的属性需要修改 Visibility-IsVisible Panel 通用的容器属性需要修改 HorizontalAlignment-HorizontalOptions...VerticalAlignment-VerticalOptions MinWidth-MinimumWidthRequest StackPanel 在 WPF 的 StackPanel 需要换 StackLayout...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
在之前写了WPF窗体中控件移动 + 拖拽大小 + 动画拖动,但是只能在Canvas容器布局中使用 现在,新增可以在GRID中可以动画拖动了 【GRID中实现动画效果】 【Canvas实现动画效果】 上菜...【一定要给需要动态拖动的控件设置宽高】 /* 注意:只要不带焦点的控件包括用户控件 都可以拖动与拖拽大小 【基类中的【公共参数】可以自行修改哦】 使用方法[这是在一个窗体的后台代码...dragControlsHelper.Remove(控件的对象或者控件的Name); //WPF中布局容器有6种如下: [Grid]网格布局,其中控件或容器需指定位置;...窗体太小时,其末尾的控件会自动换行,像Java中的流布局; [Canvas]坐标布局,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom... /// 窗体的布局容器:意思就是这个控件是被谁包这的就传它,我一般传窗体对象,窗体包着所有的控件,小范围拖动
初始化应用程序 在HRWizard用户窗体的Initialize事件中,将初始化自定义的对象并添加代码来设置向导、列表和显示用户窗体。...给用户窗体添加导航 导航按钮要在向导应用程序中完成移动步骤的任务,但它们也需要具备放置每个界面中的数据到其在用户窗体的cPerson对象里的位置的能力。...m_colSteps(CStr(iNext)).Page)- 1).Caption = m_colSteps(CStr(iNext)).Caption ShowNextPage"up" End Sub 在向导中移到下一步之前首先需要做的是保留在当前用户窗体中输入的值...无论何时改变多页控件中的页面,控件的Change事件被触发。我们使用事件去捕捉当前页面的值,并将其存储在m_oWizard对象的CurrentPage属性中。...1.在设计视图下打开用户窗体,单击标准工具栏中的“运行子程序/用户窗体”按钮或按F5键。 2.启动用户窗体后,单击下一步按钮移动到向导中的第二步(已在配置工作表中定义),应该是Address界面。
学习Excel技术,关注微信公众号: excelperfect 在开始阅读本文前,请先学习下列内容: Excel实战技巧66:创建向导样式的数据输入窗体1 下面的内容详细讲解这个引导用户为新员工输入信息的向导样式用户窗体是如何实现的...向导窗体设计 1.打开VBE,添加新的用户窗体。 2.将该用户窗体的高度设置为320,宽度为332。 3.将用户窗体重命名为HRWizard。...6.设置该控件的Height属性为216,Width属性为270。 7.将其在用户窗体中居中,在用户窗体底部留出空间。 此时的用户窗体如下图7所示。 ?...图9 在用户窗体中添加控件 在“Page1”中添加的控件如下表所示,与EmpData工作表中个人信息列标题一致。 表:HRWizard用户窗体控件 ? 图10 在多页控件的下方添加4个命令按钮。...图11 现在的用户窗体如下图12所示。 ? 图12 在“Page2”中添加的控件如下表所示,与EmpData工作表中地址信息列标题一致。 表:Address选项卡控件设置 ?
经过上文中一系列的设计和编码,我们的向导应用程序终于完成,现在是测试的时候了! 测试HRWizard应用程序 测试时间到了!...运行用户窗体,我们在向导中的每一界面输入数据,并将其保存到EmpData工作表中。...在Excel工作簿中,从宏对话框中运行StartWizard子过程,如下图29所示,或者单击工作表中已链接到该过程的“数据输入”按钮。 ?...图29 下图30至34中显示了一些简单的输入值以及在EmpData工作表中保存的数据。 ? 图30:第1个界面 ? 图31:第2个界面 ? 图32:第3个界面 ? 图33:第4个界面 ?...在学习过程中,有一些心得与大家分享如下: 1.学习并研究优秀的示例是一种好的学习方法,不仅能够开阔视野,而且能够学到好的编程习惯和好的技巧,并且在实践中借鉴他人的做法,能够增加经验,少走弯路。
引言:本文来源于Jim DeMarco的《Pro Excel 2007 VBA》第4章的示例,详细讲解了如何使用用户窗体来制作一个向导样式的数据输入窗体,非常适合于学习使用VBA来创建用户窗体的知识和技巧...,也为制作向导样式的用户窗体界面提供了参考模板。...当然,最好是自已跟着讲解一步一步的实现最终结果。在实践的过程中,可能会发生这样那样的错误,不要着急,仔细对照并调试,相信这样的反复对水平的提高有益无害。再说一遍,跟着做,坚持,拥抱错误并独立解决。...其中,名为EmpData的工作表为员工数据库工作表,名为ListMgr的工作表包含在创建数据输入窗体向导时使用的不同的列表。...图5:员工访问信息 本示例创建的向导样式数据输入窗体如下图6所示,4个界面,分别用来输入4部分数据。 ?
学习Excel技术,关注微信公众号: excelperfect 在开始阅读本文前,请先学习下列内容: Excel实战技巧66:创建向导样式的数据输入窗体1 Excel实战技巧66:创建向导样式的数据输入窗体...2 Excel实战技巧66:创建向导样式的数据输入窗体3 继续介绍组成示例应用程序的类模块代码。...管理列表 在HRWizard用户窗体中输入的一些数据是通过组合框控件显示给用户的。...,该工作表包含向导中每个步骤的信息。...如果需要在数据处理过程中添加一个用户界面,则在多页控件中设计一个新页面,创建一个新类去存储用户信息,并在配置表中添加一行。
业余时间写了一个类似stackview的控件,可以循环抽取.还不是很完善,算是给有需要的朋友提供个基本思路吧.有更好的建议请告知. github地址:https://github.com/X-FAN...private BindData mBindData; private LayoutInflater mInflater; private View mTopView;//最顶上的View...view); } } }); } } /** * 给最底层的View...private float mInitX;//view初始的x坐标 private float mTouchDownX;//按下时的手指x坐标 private float mRecordX...;//记录移动后view的x坐标 private View mView; private GestureDetectorCompat mGestureDetector;
基础控件 Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计。。。。 但在这种特别的关系里还是有一定的规律的,下面我们一起来看看控件的使用方式。 ...相信我,用Xamarin开发,你在农耕社会还有个犁耙,用AS开发,你会发现你只能用手挖。。。。 GridView 首先,Android的GridView是我见过最奇葩的列表使用方式。。。...这也是为什么我感觉他奇葩的原因,因为在之前的Activity和布局中已经混淆了视图和数据,然后,在控件里,我们又一次把数据和布局搅和在了一起。。。。 下面我们看看它是如何混淆,不,他是如何工作的吧。...首先,在行导入的GetView中,我们找到要填充的布局XML——activity_label_item.xml。...如上图所示,我们成功的实现了点击事件。 到此,控件的基础应用就讲完了,下一篇继续讲解Android软件的部署。
而ReleaseCapture悄悄相反,函数的功能就是释放对鼠标的捕捉。 为什么要使用这个ReleaseCapture函数,原因在于移动窗体标题时,需要释放对鼠标的捕捉,否则,就不能移动窗体标题。...SendMessage函数:该函数是用来给窗体发送Windows消息, 在本文中,该函数是模拟给非窗体客户区域(如窗体标题、最大化、最小化及关闭按钮区域)发送Windows消息,使特定区域能收到拖动窗体标题的消息...二、构建模拟移动窗体标题的应用程序,在这里我们使用了一个label(左边,label1),用来将鼠标移到该控件并拖动时,可以移动窗体, 另外一个label(右边,label2)则用来关闭窗体,如下图所示...,因此需要使用ToolTip控件。...三、窗体颜色变换 这里主要用到了一个变换彩虹颜色的算法,参考如下: public static Color Rainbow(float progress) { var div = (Math.Abs
在一些应用场景中,我们可能会需要根据工作表中的数据来创建用户窗体中的控件。例如下图1所示,在工作表第3行中有一行标题数据,想要根据标题数量在用户窗体中创建标签和相应的文本框。...图1 按Alt+F11组合键,打开VBE,单击菜单“插入——用户窗体”,在该用户窗体中放置一个框架控件,如下图2所示。...图2 在该用户窗体中单击右键,选择“查看代码”命令,输入下面的代码: Private Sub UserForm_Initialize() Dim rngData As Range Dim...fmScrollBarsVertical .ScrollHeight = .InsideHeight * i / 10 End With End If End Sub 运行窗体后...例如,用户在文本框中输入内容后,自动输入到工作表中;清空文本框中的内容;等等。
将工程中的窗体文件命名为binding.cs(或.vb)。 将FpSpread控件添加到你的工程中,然后把控件放置到窗体上。...OleDbDataAdapter控件已经被添加到了你的窗体中,位于窗体区域下面的区域内。 这时数据适配器配置向导出现了。 4. 选择下一步开始完成向导。 5....你的对话框应该与下面的类似: ? 11. 选择确定关闭查询生成器对话框,然后在向导中选择下一步: 12. 向导汇总了你的选择。选择完成以结束向导。 13....运行工程,你将会看到一个类似下图中所示的窗体: ? 5. 如果你运行工程得到的窗体与上图中所示的不同,调整Spread控件的大小,然后重新检查到目前为止你所执行的所有步骤。 6. 停止工程。...通过改变单元格类型改善显示效果 在这一步中,为了更好的显示数据库中的数据,你将会改变列中单元格的类型。 运行工程,你将会看到一个类似下图的窗体: 1. 双击窗体,打开代码窗口。 2.
”与“Chilid子窗体”之间如何相互的调用方法。...C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmParent,子窗体是frmChildA...//在父窗体中打开子窗体 frmChildA child = new frmChildA(); child.MdiParent = this; child.Show(); //子窗体调父窗体方法...如果父窗体与子窗体在同一个模块内看似没有错,因为这种反向引用在同一个模块内是可行的,但程序不能这么写,你把它写死了!固化了!...假设我们的项目不断在扩展,需要将父窗体与子窗体分开在不同的模块,这段代码就完了!因为父窗体模块必须引用子窗体模块,而子窗体需要用到frmParent的类,又要引用父窗体的模块!
在窗体最上面这样写语句的话,就相当于手动插入了一个名称是ob的选项按钮,这样在代码编辑器下拉框里,就能选择ob,然后选择对应的事件。...但是在UserForm_Initialize事件里添加控件,如果使用窗体的全局变量ob的话,ob只能指向最后一个控件,因为它仅仅是一个变量,不会同时指向多个控件。...而窗体的全局变量声明带WithEvents的时候又不能声明为数组控件,所以在窗体里没法插入不定数量,却又带有事件的控件。...其实这个功能的实现只要有一种对象,能够让我们添加控件,同时这个对象内部又能让我们编辑控件事件的代码。这种对象和以前说到过的类是不是很像?类就是一种对象,而且这种对象就是可以让使用者来自定义的。...在窗体中编辑代码: Option Explicit '声明COB数组,记录COB对象 Private cobs() As COB Private Sub UserForm_Initialize()