C#实现运行期控件设计?UI设计控件建立的主要思路是怎样的

2024-06-30 17:42:37 1

C#实现运行期控件设计?UI设计控件建立的主要思路是怎样的

本文目录

C#实现运行期控件设计

  最近看到很多人对C#运行期控件设计的问题 于是写了这个Memo希望对大家有用    实现了控件自由拖动    实现了控件的拖动创建 右键删除等类似IDE的控件创建 当然更多功能靠大家自己完善   实现属性框与控件的绑定 可以在运行期修改控件的Text

  以下是部分代码

view plaincopy to clipboardprint?
    private void button _Click(object sender  EventArgs e)    {        //控件框的显示与隐藏        if (panel Visible == true)        {            button Text =  +  控件框 ;            panel Visible = false;        }        else       {            button Text =    控件框 ;            panel Visible = true;        }    }  

   private void button《fp class=’fp-mca3f’》《/fp》_Click(object sender《fp class=’fp-3wklu’》《/fp》 EventArgs e){//控件框的显示与隐藏if (panel《fp class=’fp-1kngi’》《/fp》《fp class=’fp-ht9y8’》《/fp》Visible == true){button《fp class=’fp-zdrlb’》《/fp》《fp class=’fp-08zgu’》《/fp》Text = 《fp class=’fp-qodbl’》《/fp》+ 控件框《fp class=’fp-qodbl’》《/fp》;panel《fp class=’fp-oo78r’》《/fp》《fp class=’fp-ht9y8’》《/fp》Visible = false;}else{button《fp class=’fp-5r0l1’》《/fp》《fp class=’fp-6fhn7’》《/fp》Text = 《fp class=’fp-rjk64’》《/fp》《fp class=’fp-l5b6e’》《/fp》 控件框《fp class=’fp-w2mbb’》《/fp》;panel《fp class=’fp-oo78r’》《/fp》《fp class=’fp-6fhn7’》《/fp》Visible = true;}}

view plaincopy to clipboardprint?
    private void button _MouseDown(object sender  MouseEventArgs e)    {        //判断鼠标左键按下        if (e Button == MouseButtons Left)        {            Button btn = (Button)(sender);            //初始化拖放操作            btn DoDragDrop(btn  DragDropEffects Copy);        }    }       private void panel _DragDrop(object sender  DragEventArgs e)    {        //开始拖动        Button btn = (Button)(e Data GetData( System Windows Forms Button ));        Button btn_new = new Button();        btn_new ContextMenuStrip = contextMenuStrip ;        btn_new Name = btn_new Text = btn Text +   + name;        btn_new Left = PointToClient(MousePosition) X panel Left;        btn_new Top = PointToClient(MousePosition) Y   panel Top;        //加载事件        btn_new Click += new System EventHandler(this button _Click);        btn_new MouseLeave += new System EventHandler(this button _MouseLeave);        btn_new MouseDown += new System Windows Forms MouseEventHandler(this button _MouseDown);        btn_new MouseMove += new System Windows Forms MouseEventHandler(this button _MouseMove);        btn_new Parent = panel ;        name++;    }  

   private void button《fp class=’fp-k5e89’》《/fp》_MouseDown(object sender《fp class=’fp-z1zjt’》《/fp》 MouseEventArgs e){//判断鼠标左键按下if (e《fp class=’fp-08zgu’》《/fp》Button == MouseButtons《fp class=’fp-yejgn’》《/fp》Left){Button btn = (Button)(sender);//初始化拖放操作《fp class=’fp-7r6ov’》《/fp》btn《fp class=’fp-yejgn’》《/fp》DoDragDrop(btn《fp class=’fp-3wklu’》《/fp》 DragDropEffects《fp class=’fp-yejgn’》《/fp》Copy);}}private void panel《fp class=’fp-khv38’》《/fp》_DragDrop(object sender《fp class=’fp-3wklu’》《/fp》 DragEventArgs e){//开始拖动Button btn = (Button)(e《fp class=’fp-08zgu’》《/fp》Data《fp class=’fp-08zgu’》《/fp》GetData(《fp class=’fp-rjk64’》《/fp》System《fp class=’fp-ht9y8’》《/fp》Windows《fp class=’fp-ht9y8’》《/fp》Forms《fp class=’fp-08zgu’》《/fp》Button《fp class=’fp-qodbl’》《/fp》));Button btn_new = new Button();btn_new《fp class=’fp-6fhn7’》《/fp》ContextMenuStrip = contextMenuStrip《fp class=’fp-1kngi’》《/fp》;btn_new《fp class=’fp-ht9y8’》《/fp》Name = btn_new《fp class=’fp-08zgu’》《/fp》Text = btn《fp class=’fp-yejgn’》《/fp》Text + 《fp class=’fp-2kwl6’》《/fp》《fp class=’fp-mts9k’》《/fp》《fp class=’fp-l5b6e’》《/fp》《fp class=’fp-2kwl6’》《/fp》 + name;btn_new《fp class=’fp-ht9y8’》《/fp》Left = PointToClient(MousePosition)《fp class=’fp-6fhn7’》《/fp》X《fp class=’fp-xq2dh’》《/fp》panel《fp class=’fp-4k1o0’》《/fp》《fp class=’fp-yejgn’》《/fp》Left;btn_new《fp class=’fp-08zgu’》《/fp》Top = PointToClient(MousePosition)《fp class=’fp-yejgn’》《/fp》Y 《fp class=’fp-l5b6e’》《/fp》 panel《fp class=’fp-khv38’》《/fp》《fp class=’fp-ht9y8’》《/fp》Top;//加载事件btn_new《fp class=’fp-08zgu’》《/fp》Click += new System《fp class=’fp-08zgu’》《/fp》EventHandler(this《fp class=’fp-6fhn7’》《/fp》button《fp class=’fp-aa2q8’》《/fp》_Click);btn_new《fp class=’fp-ht9y8’》《/fp》MouseLeave += new System《fp class=’fp-08zgu’》《/fp》EventHandler(this《fp class=’fp-ht9y8’》《/fp》button《fp class=’fp-ypbi5’》《/fp》_MouseLeave);btn_new《fp class=’fp-yejgn’》《/fp》MouseDown += new System《fp class=’fp-ht9y8’》《/fp》Windows《fp class=’fp-yejgn’》《/fp》Forms《fp class=’fp-08zgu’》《/fp》MouseEventHandler(this《fp class=’fp-08zgu’》《/fp》button《fp class=’fp-aa2q8’》《/fp》_MouseDown);btn_new《fp class=’fp-ht9y8’》《/fp》MouseMove += new System《fp class=’fp-ht9y8’》《/fp》Windows《fp class=’fp-yejgn’》《/fp》Forms《fp class=’fp-08zgu’》《/fp》MouseEventHandler(this《fp class=’fp-ht9y8’》《/fp》button《fp class=’fp-ypbi5’》《/fp》_MouseMove);btn_new《fp class=’fp-08zgu’》《/fp》Parent = panel《fp class=’fp-m0j1x’》《/fp》;name++;}

view plaincopy to clipboardprint?
    private void panel _DragEnter(object sender  DragEventArgs e)    {        e Effect = DragDropEffects Copy;    }       private void button _Click(object sender  EventArgs e)    {        groupBox Text = (sender as Button) Name +  属性 ;        textBox Text = (sender as Button) Text;       }       private void button _MouseDown(object sender  MouseEventArgs e)    {        //判断鼠标

    左键按下        if (e Button == MouseButtons Left)        {            Button btn = (Button)(sender);            //初始化拖放操作            btn DoDragDrop(btn  DragDropEffects Copy);        }    }  

   private void panel《fp class=’fp-4k1o0’》《/fp》_DragEnter(object sender《fp class=’fp-3wklu’》《/fp》 DragEventArgs e){e《fp class=’fp-ht9y8’》《/fp》Effect = DragDropEffects《fp class=’fp-08zgu’》《/fp》Copy;}private void button《fp class=’fp-oo78r’》《/fp》_Click(object sender《fp class=’fp-3wklu’》《/fp》 EventArgs e){groupBox《fp class=’fp-ypbi5’》《/fp》《fp class=’fp-ht9y8’》《/fp》Text = (sender as Button)《fp class=’fp-yejgn’》《/fp》Name + 《fp class=’fp-w2mbb’》《/fp》属性《fp class=’fp-w2mbb’》《/fp》;textBox《fp class=’fp-1kngi’》《/fp》《fp class=’fp-yejgn’》《/fp》Text = (sender as Button)《fp class=’fp-yejgn’》《/fp》Text;}private void button《fp class=’fp-4k1o0’》《/fp》_MouseDown(object sender《fp class=’fp-3wklu’》《/fp》 MouseEventArgs e){//判断鼠标左键按下if (e《fp class=’fp-yejgn’》《/fp》Button == MouseButtons《fp class=’fp-6fhn7’》《/fp》Left){Button btn = (Button)(sender);//初始化拖放操作《fp class=’fp-ca7t2’》《/fp》btn《fp class=’fp-yejgn’》《/fp》DoDragDrop(btn《fp class=’fp-4wtqi’》《/fp》 DragDropEffects《fp class=’fp-yejgn’》《/fp》Copy);}}  

view plaincopy to clipboardprint?
    private void toolStripMenuItem _Click(object sender  EventArgs e)    {        //释放控件        btnflag Dispose();    }       private void textBox _KeyPress(object sender  KeyPressEventArgs e)    {        btnflag Text = textBox Text;    }       private void textBox _KeyDown(object sender  KeyEventArgs e)    {        //响应回车        if (e KeyValue ==  )            btnflag Text = textBox Text;       }       private void button _Click(object sender  EventArgs e)    {        //控件框的显示与隐藏        if (groupBox Visible == true)        {            button Text =  +  属性窗口 ;            groupBox Visible = false;        }        else       {            button Text =    属性窗口 ;            groupBox Visible = true;        }    }  

   private void toolStripMenuItem《fp class=’fp-5r0l1’》《/fp》_Click(object sender《fp class=’fp-i5yyw’》《/fp》 EventArgs e){//释放控件btnflag《fp class=’fp-yejgn’》《/fp》Dispose();}private void textBox《fp class=’fp-aa2q8’》《/fp》_KeyPress(object sender《fp class=’fp-3wklu’》《/fp》 KeyPressEventArgs e){btnflag《fp class=’fp-yejgn’》《/fp》Text = textBox《fp class=’fp-aa2q8’》《/fp》《fp class=’fp-6fhn7’》《/fp》Text;}private void textBox《fp class=’fp-ypbi5’》《/fp》_KeyDown(object sender《fp class=’fp-3wklu’》《/fp》 KeyEventArgs e){//响应回车if (e《fp class=’fp-ht9y8’》《/fp》KeyValue == 《fp class=’fp-aa2q8’》《/fp》《fp class=’fp-rolg9’》《/fp》)btnflag《fp class=’fp-yejgn’》《/fp》Text = textBox《fp class=’fp-aa2q8’》《/fp》《fp class=’fp-ht9y8’》《/fp》Text;}private void button《fp class=’fp-xjbl4’》《/fp》_Click(object sender《fp class=’fp-4wtqi’》《/fp》 EventArgs e){//控件框的显示与隐藏if (groupBox《fp class=’fp-ypbi5’》《/fp》《fp class=’fp-6fhn7’》《/fp》Visible == true){button《fp class=’fp-wvvjy’》《/fp》《fp class=’fp-yejgn’》《/fp》Text = 《fp class=’fp-2kwl6’》《/fp》+ 属性窗口《fp class=’fp-qodbl’》《/fp》;groupBox《fp class=’fp-aa2q8’》《/fp》《fp class=’fp-08zgu’》《/fp》Visible = false;}else{button《fp class=’fp-n0r5l’》《/fp》《fp class=’fp-ht9y8’》《/fp》Text = 《fp class=’fp-2kwl6’》《/fp》《fp class=’fp-l5b6e’》《/fp》 属性窗口《fp class=’fp-2kwl6’》《/fp》;groupBox《fp class=’fp-1kngi’》《/fp》《fp class=’fp-08zgu’》《/fp》Visible = true;}}

  实现的效果图如下

lishixinzhi/Article/program/net/201311/11926

UI设计控件建立的主要思路是怎样的

1. 以原子化理论为依据去构建我们的设计体系。将我们的页面拆分成不同的原子(元素),再将原子进行组合成分子(控件),再将不同分子进行组合成组织(模块),再将组织组合成最后的页面。这样做的目的是让整个设计看起来和谐而生动,每一步的构造都是精心打造的。

2. 场景收集、归纳分类。收集产品中所有出现过的场景,然后对不同部分的样式、状态等进行归纳分类。举个例子,按钮在产品中哪些场景里出现过,这些按钮又可分为哪些状态(可点击、不可点击等)和哪些样式(长按钮、短按钮、标签按钮等),这些场景的收集和归纳对于UI设计控件建立的思路很有帮助。

3.规范建立的最佳时间是完成设计风格定位后,这样才能承上启下高效的去完成工作。同时定义规范时要细腻、帮助设计师复用模块,不要光定义规范,还有创建能够复用的样式,也就是其他设计师能直接复制模块内容改一下就能用到设计产品中去。这样它的可操作性就会更好一些。

以上就是UI设计控件建立的主要思路,希望为你带来一些帮助,其实学习UI设计除了你的目标足够坚定,还要有一定的设计思路在里面。更多UI设计方面的资讯,请及时关注本平台。

VB 关于自定义控件 设计属性

’首先,你的代码应该只有下面的部分(例如):Public Property Let ItemHeight(ByVal NewHeight As Long) m_ItemHeight = NewHeightEnd PropertyPublic Property Get ItemHeight () As Long ItemHeight = m_ItemHeightEnd Property’ 上面分别是控件属性的Get和Let属性过程,这只能实现在设计阶段输入这些属性,要想保存这些属性,并且重新加载时加载这些属性值,必须有保存属性和读取属性的代码。你的情况就是上述情况,我初学时也遇到过。’ 需要加以下的代码(供参考):Private Sub UserControl_WriteProperties(PropBag As PropertyBag)’写属性。将你设置的属性写入属性文件保存 Call PropBag.WriteProperty("ItemHeight", m_ItemHeight) ’列表x项高度End SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)‘读取属性值 m_ItemHeight = PropBag.ReadProperty("ItemHeight", 28) ’m_ItemHeight) ’列表项高度End Sub’大功告成

怎么样使用VC++设计ActiveX控件

ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。本文着重介绍以Visual C++ 5.0为工具,利用系统提供的AppWizard快速构造一个简单的ActiveX控件。通常VC++5.0提供两个途径开发ActiveX控制:MFC和ATL(ActiveXTemplateLibrary)。使用MFC,可以不必理会控制接口的细节,把注意力集中在控制本身的功能上,但是生成的控制比较大。而且,客户端如果要运行此ActiveX控制,必须拥有相应版本的MFC类库的DLL,否则,必须同时下载这些巨大的类库;使用ATL,由于不汲及MFC的标准类库,生成的控制相对较小,但开发者必须了解COM、OLE技术的细节。这里,我们主要说明一下使用MFC开发ActiveX控制的方法,因为这种方法相对比较容易。在Microsoft Developer Studio环境下,按如下的操作步骤可以快速生成一个标准的ActiveX控件。首先,启动系统的AppWizard,用File菜单下的New菜单项创建新的项目。注意:我们选择的是列表框中的MFC ActiveX ControlWizard项。也可以使用ATL COM AppWizard项来产生ActiveX控件,这样实现的控件的最终代码量较小,但由于用这种方法加入的ActiveX控件对象从最基本的COM对象出发,故不能使用MFC类库中的COleControl所提供的强大功能。而用MFC ActiveX ControlWizard项则产生以COleControl为基类的控件对象类,它继承了所有COleControl类中实现的OLE控件的特性,包括窗口对象特性和方法、属性及事件等。接着,按照系统给出的提示信息逐步完成创建工作。用户可根据实际应用的要求定制控件的各项特性。我们假定项目名为Test。创建工作完成后,打开Workspace文件Test.dsw,可以看到系统生成的Test控件框架,主要的类及实现功能描述见下表:派生类 基类 实现功能 CTestApp COleControlModule 控件实例的初始化和撤消 CTestCtrl COleControl 控件窗口的创建、更新及消息处理 CTestPropPage COlePropertyPage 控件属性页的设置及与实际属性值的交换 编译此项目,生成Test.ocx。在当前的Developer Studio环境下,这个控件已经被自动注册了。用系统提供的工具ActiveX Control Test Container可以立即进行测试,在已提供的可插入OLE控件列表中,Test Control就是我们生成的控件名。如果想在其它环境下使用它,则必须先对Test.ocx文件进行注册,具体做法是在命令行方式下键入命令:“regsvr32 …/Test.ocx”。此后,我们就可在任何支持ActiveX控件的环境中使用它了。注意:.ocx文件应该随时更新和注册。当然,这样生成的控件没有什么实质性的用处,若在任何一个包容器中测试它,则只可见一个矩形框和一个内切椭圆,除了缩放和位置移动功能外不能进行任何操作。然而,我们希望开发出来的控件就像一个通常的环境一样:用户可以在窗口内进行文本的输入和,而且有工具条来支持各项操作。1、为控件添加工具条和子窗口 VC++的模板常常是很有用的工具,我们设计一个类CToolbar,为控件类T添加工具条,显示每个按钮及提示信息。我们的控件类CtestCtrl是从这个类派生出来的,从而可为控件加上设计好了的工具条。以下是实现工具条模板类的定义 (在Toolbar.h文件中) :templateclass CToolbar{public:CToolbar();void CreateToolbar(HWND hParent);// 创建工具条void AddButtons();// 逐个加入按钮void DestroyToolbar();// 撤消工具条LRESULT OnToolbarNeedText(WPARAM, LPNMHDR pnmh, BOOL&);// 工具条上按钮的提示信息protected:HWND m_hwndToolbar;// 工具条的窗口句柄}; 接着,要对TestCtl.h和TestCtl.cpp作相应的修改。在TestCtl.h中要先包含Toolbar.h文件,并将控件类定义为:class CTestCtrl : public COleControl, public CToolbar然后,再加进消息映射宏:BEGIN_TOOLBAR_MAP(CTestCtrl)TOOLBAR_BUTTON(ID_New)TOOLBAR_SEPARATOR()TOOLBAR_BUTTON(ID_CUT)......TOOLBAR_SEPARATOR()......END_TOOLBAR_MAP() 以响应定制的工具条上的各个按钮消息。上面的宏在Toolbar.h文件中被定义。于是,在CTestCtrl类的成员函数中就可以灵活使用CToolbar类的各项操作了。另外,我们再为控件设计一个可的子窗口。这实现起来很方便,在控件类定义中直接加入CEdit类的对象作为成员变量m_TestEdit即可。要想真正生成我们自己的控件窗口,则需重载COleControl::CreateControlWindow函数。控件窗口被创建时,该函数被调用,函数中先调用基类同名函数,再依次调用CreateToolbar和CreateTestEdit 生成控件中的工具条和子窗口。自然,我们不再需要系统缺省调用的画图函数,将CTestCtrl::OnDraw 中画矩形框和椭圆的部分去掉。CreateToolbar在工具条模板类中实现;CreateTestEdit 在控件类中自定义,函数先计算控件窗口的客户区和工具条的窗口大小,得到子窗口的位置,使之填满控件中工具条以外的全部区域,然后调用m_TestEdit.Create函数,设置参数使子窗口具有用户所希望的各项风格。2、调整控件窗口中各个对象的位置 工具条和子窗口已经在控件中生成后,还有一项重要的工作就是当控件位置移动或大小改变时,要相应地调整工具条和子窗口的位置和大校COleControl类为我们提供了这样的函数:COleControl::OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip); 其中的参数给出了控件的新位置。重载此函数,先按系统提供的功能自动调整工具条,调用:::SendMessage(m_hwndToolbar, TB_AUTOSIZE, 0L, 0L) 然后,同创建时一样计算控件窗口的客户区(参数lpRectPos已给出),调用GetWindowRect获得工具条的窗口大校为使子窗口填满控件中工具条以外的全部区域,应先计算出相应的矩形位置并调用m_TestEdit.SetWindowPos来 实现子窗口的位置调整。为了美观起见,也可在子窗口的四边留出少许富余。最后,调用基类的OnSetObjectRects函数。3、实现对控件内对象的控制 因为有了子窗口,实际上用户的各项功能操作都是由子窗口来控制完成的。我们将焦点的控制权交给子窗口,使用户能进行输入和操作,在CTestCtrl::OnSetFocus中调用m_TestEdit.SetFocus。同样,当控件对象捕获到工具条上的按钮被按下的消息时,要调用 m_TestEdit 的相应函数以执行用户的命令。工具条上提示信息的显示也由控件对象来控制。在CTestCtrl::OnNotify函数中加入如下代码:NMHDR *pNMHDR = (NMHDR *)lParam;BOOL tmp;if (pNMHDR-》code == TTN_NEEDTEXT)return OnToolbarNeedText(wParam, pNMHDR, tmp); 这样,当鼠标移动并停留在工具条的某个按钮上时,控件对象就会调用工具条模板类中的OnToolbarNeedText 函数以获得相应的提示信息。4、控件窗口及内部对象的撤消 最后需要说明的是,如果我们在控件中创建了新的工具条和子窗口,则也应该及时撤消控件窗口及其内部对象。撤消控件窗口,即是在 CTestEdit::OnDestroy函数中依次调用DestroyToolbar和 m_TestEdit.DestroyWindow 来清除工具条和子窗口。遵循以上四个工作步骤就可以很好地创建一个带有工具条和子窗口的ActiveX控件。子窗口可由用户自己定义,象通常的应用程序那样去实现各种各样或简单或复杂的功能。工具条的存在使用户执行各项操作更加方便。此外,在控件中加进其它各种所需的对象并进行控制也是可能的。

控件设计是什么

控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能、控件创建过程包括设计、开发、调试(就是所谓的3Ds开发流程,即Design、Develop、Debug)工作, 然后是控件的使用。 设计控件是一项繁重的工作。 自行开发控件与使用控件进行可视化程序开发存在着极大的不同,要求程序员精通面向对象程序设计。 创建控件的最大意义在于封装重复的工作,其次是可以扩充现有控件的功能。

简述Android中控件设计的基本步骤

1. 了解用户需求

在设计Android中的控件之前,了解用户需求是必要的第一步。您应该考虑要设计的控件的目的和用途,并确定它是否能够满足用户期望的功能。

2. 确定控件类型

根据您所收集到的用户需求,确定要设计的控件类型。例如,如果用户希望能够在应用程序中选择日期和时间,那么您可以考虑使用DatePicker和TimePicker控件。

3. 设计控件外观

一旦您确定了要设计的控件类型,您应该开始设计它的外观。这将涉及到控件的样式、字体、布局和颜色等方面。您可以使用控件的默认样式,也可以根据自己的需要进行自定义。

4. 编写控件代码

设计出控件的外观之后,您应该开始编写控件的代码。这将涉及到控件的逻辑和功能,以及与应用程序其他组件的交互。例如,您可以为控件编写处理用户输入的代码,并将其与应用程序的其他部分进行交互。

5. 测试控件

完成控件编写后,您应该进行测试,以确保控件可以正常工作并满足用户需求。例如,您可以使用模拟器或实体设备来测试控件,并检查其功能和性能。

6. 优化控件性能

优化控件性能是一个重要的步骤,它可以提高应用程序的流畅性和响应速度。您应该尽可能减少控件的资源使用,例如内存和处理器时间,以便应用程序可以更有效地运行。

7. 文档化控件

最后,您应该为控件编写文档,以便其他开发人员可以了解如何使用和集成控件。这些文档应该包括控件的使用说明、参数和示例代码等内容。

以上是Android中控件设计的基本步骤,通过遵循这些步骤,您可以设计出高质量的控件,并使应用程序更加专业和易于使用。

在列表框控件设计中,确定列表框内的某个条目是否被选定应使用的属性是(  )

【答案】:DValue属性返回列表框中被选中的条目。ColumnCount属性指定列表框的列数。ListCount属性指明列表框中数据条目的数目。Selected属性指定列表框内的某个条目是否处于选定状态。

VFP中使用Grid控件设计通用录入界面

Grid是VFP功能强大的表格(或者说网格)控件,它提供了比Browse窗口强大得多的控制方式。Grid是包含列对象的容器对象,而列对象包含了列标题对象及列控件对象,均有各自相应的属性集,因此我们可以完全控制表格中的任何一个元素,设计出通用的报表录入界面。 下面我们就详细讨论如何使用Grid控件设计通用录入界面,并解决几个设计过程中经常碰到的问题。   一、基本原理思路   设计灵活性、通用性较强的录入界面较为合适的方法是:采用数据表(DBF文件)控制Grid控件的行列显示信息、显示方式。因此,我们将Grid控件的数据源RecordSource设为数据表(DBF文件),其数据格式、显示方式及行列提示信息则分别由数据表RowMsg.DBF(控制表格的行即记录方面信息)、ColMsg.DBF(数据格式并控制Grid控件的列方面信息)进行控制。另外,一般来说指定Grid控件第一列显示行提示信息,若有多个提示信息字段,可连接处理为一列。   二、前期准备工作   1.创建表RowMsg.DBF,该表有2个字段,用于显示Grid控件行信息: Create Table RowMsg(Code C(5),Name C(33))   2. 创建表ColMsg.DBF,该表有6个字段,用于控制、显示表格各列信息: Create Table ColMsg(Code C(5),Name C(20),NeedIn L(1),Field_Name C(10),Field_Type C(1),Field_Len N(3),Field_Dec N(3))   3.创建表单In_Grid,将其属性Name改为“FrmGrid”, Caption改为“数据录入/修改窗口”;在表单上放置Grid控件,将其属性Name改为“GridDat”;在表单上放置Command控件,将其属性Name改为“CmdExit”, Caption改为“关闭退出”。   三、初步设计工作   1.先在表单的Init事件中写入如下代码: Set Talk Off Set Safe Off CLOSE ALL With ThisForm .AutoCenter=.T. &&表单自动居中 .ControlBox=.F. &&去除表单的控制框 .Width=_Screen.Width &&表单宽度同屏幕 EndWith **/由ColMsg.DBF生成输入数据表Dat.DBF **/ Sele 0 Use ColMsg Copy To TmpStru Field Field_Name,Field_Type,Field_Len,Field_Dec Copy To TmpColMsg For NeedIn Create Dat From TmpStru &&生成Dat.DBF Eras TmpStru.DBF Sele 0 Use TmpColMsg Alias ColMsg Sele 0 Use RowMsg Index On AllTrim(Code) To TmpRowMsg Scan Insert Into Dat(Code) Values (RowMsg.Code) &&由RowMsg.DBF生成Dat.DBF的所有记录 EndScan Sele Dat Go Top Set Rela To AllTrim(Code) Into RowMsg With ThisForm.GridDat .FontName="微软雅黑" .FontSize=10 .DeleteMark=.F. &&去除Grid的删除标记列,以美化界面 .RecordMark=.F. &&去除Grid的记录选择标记列,以美化界面 .ScrollBars=0 &&去除Grid的水平及垂直滚动条,以美化界面 .AllowHeaderSizing=.F.&&设定Grid的标题栏的高度不可改变 .AllowRowSizing=.F. &&设定Grid的各行高度不可改变 .ColumnCount=Recc("ColMsg")+1 .RecordSourceType=2 .RecordSource="Dat"

C#实现运行期控件设计?UI设计控件建立的主要思路是怎样的

本文编辑:admin

本文相关文章:


C#实现运行期控件设计?简述Android中控件设计的基本步骤

C#实现运行期控件设计?简述Android中控件设计的基本步骤

本文目录C#实现运行期控件设计简述Android中控件设计的基本步骤控件设计是什么怎么样使用VC++设计ActiveX控件UI设计控件建立的主要思路是怎样的VB 关于自定义控件 设计属性在列表框控件设计中,确定列表框内的某个条目是否被选定应

2024年6月6日 09:59

更多文章:


jupyter怎么打开已有的文件(Mac下怎么用jupyter notebook打开.md格式文件)

jupyter怎么打开已有的文件(Mac下怎么用jupyter notebook打开.md格式文件)

本文目录Mac下怎么用jupyter notebook打开.md格式文件jupyter怎么保存文件双击打开ipynb文件怎么用anaconda打开ipynb文件如何制作快速打开jupyter的批处理文件如何用jupyter笔记本打开cvs文

2024年7月11日 08:19

黑马程序员校区(黑马程序员太原校区在五龙口街汇大国际,附近生活便利吗)

黑马程序员校区(黑马程序员太原校区在五龙口街汇大国际,附近生活便利吗)

本文目录黑马程序员太原校区在五龙口街汇大国际,附近生活便利吗南昌有黑马计算机培训吗黑马程序员成都校区直播在哪看深圳黑马程序员培训机构地址谁知道黑马程序员的他们的上海校区怎么样北京黑马程序员哪个校区最好黑马程序员太原校区在五龙口街汇大国际,附

2024年7月8日 05:58

房产app源码(有没有类似安居客Android开发的实例或者源码,就是房地产方面的如搜房,售房,租房等等)

房产app源码(有没有类似安居客Android开发的实例或者源码,就是房地产方面的如搜房,售房,租房等等)

本文目录有没有类似安居客Android开发的实例或者源码,就是房地产方面的如搜房,售房,租房等等我们公司想做个房产APP,请问房产APP开发有哪些注意事项呢房源码是什么开发一个房产app时间要多长哪位大哥大姐有房产信息管理系统的源码啊,Ja

2024年7月21日 09:35

program filesx86可以删除吗(电脑e盘中有Program Files (x86),能删吗)

program filesx86可以删除吗(电脑e盘中有Program Files (x86),能删吗)

本文目录电脑e盘中有Program Files (x86),能删吗program files x86什么可以删除program files x86 可以删除吗电脑c盘里的Program Files里的文件那些可以删除Program File

2024年6月29日 23:14

方舟hg stacking(steam方舟生存进化物品叠加mod叫什么)

方舟hg stacking(steam方舟生存进化物品叠加mod叫什么)

本文目录steam方舟生存进化物品叠加mod叫什么方舟生存进化,电脑上怎么下载呀方舟困兽房mod叫啥steam方舟生存进化物品叠加mod叫什么它的名字叫做,AnnunakiGenesis。进入游戏之后,点击单人游戏,会出现调节面板,就在左上

2024年7月23日 07:33

有哪些性价比高的教学管理平台?谁能告诉我武汉理工大学网络学院是个什么性质的

有哪些性价比高的教学管理平台?谁能告诉我武汉理工大学网络学院是个什么性质的

本文目录有哪些性价比高的教学管理平台谁能告诉我武汉理工大学网络学院是个什么性质的武汉理工大学网络学院是个什么概念啊骗人的吗武汉理工大学网络教育学院的介绍目前有哪些网络教育平台全国有哪些高校有网络教育学院武汉理工大学网络教育学院一对一在线教育

2024年5月5日 19:48

网页设计与制作网站(网页设计与制作怎么制作校园网站)

网页设计与制作网站(网页设计与制作怎么制作校园网站)

本文目录网页设计与制作怎么制作校园网站网页设计与制作‘首页官方网站’网页设计与制作:创建一个至少包括5个网页的网站网页设计与制作怎么制作校园网站1、明确网站的目的、主题和名称2、确定网站的标志(logo)3、确定网站的标准色彩4、确定网站的

2024年7月20日 04:03

常见微量元素(微量元素有哪些)

常见微量元素(微量元素有哪些)

本文目录微量元素有哪些微量元素包括哪些孩子却微量元素对身体都有什么危害人体内的微量元素指的是什么补充微量元素的方法,你知道哪些对人体来说常见的宏量元素有哪些、常见的微量元素有哪些微量元素各有什么作用微量元素有哪些微量元素是人体不可缺少的元素

2024年7月20日 06:44

it基础培训(零基础IT培训到底怎么样)

it基础培训(零基础IT培训到底怎么样)

本文目录零基础IT培训到底怎么样IT初学者怎么入门零基础IT培训到底怎么样IT行业的薪水相对较高,零基础转行确实可以在三个月之内做得到,但是IT里的不同职业对于基础要求的是不一样的。选择学什么,做哪个职业,对于自己未来的职业影响非常大不清楚

2024年6月30日 13:39

sql数据库四舍五入(sql查询语句查询结果是数值小数点后自动四舍五入取小数点后4位,可以怎么写)

sql数据库四舍五入(sql查询语句查询结果是数值小数点后自动四舍五入取小数点后4位,可以怎么写)

本文目录sql查询语句查询结果是数值小数点后自动四舍五入取小数点后4位,可以怎么写SQL中decimal和numeric为什么会自动四舍五入啊我是想保留有小数的怎么办SQL Server 2005的四舍五入问题sql四舍五入合计明细不对SQ

2024年7月19日 06:11

嵌入式实时操作系统ucos ii(什么是嵌入式实时操作系统简单介绍其特点)

嵌入式实时操作系统ucos ii(什么是嵌入式实时操作系统简单介绍其特点)

本文目录什么是嵌入式实时操作系统简单介绍其特点如何学好uc/os-ii操作系统uCOS-II到底如何入门嵌入式实时操作系统ucos-ii怎么样关于嵌入式实时操作系统ucos ii的分析ucos ii是什么啊什么是嵌入式实时操作系统简单介绍

2024年6月13日 23:06

tableau数据可视化工具(tableau是javascript函数库吗)

tableau数据可视化工具(tableau是javascript函数库吗)

本文目录tableau是javascript函数库吗【数据可视化】Tableau教程(一)TOP N--基础版Tableau&BDP,哪个才是最适合中国用户的数据可视化分析工具【tableau数据分析可视化-专题(4)】-Tableau制作

2024年7月22日 05:44

div css 透明(用css实现div的黑色透明)

div css 透明(用css实现div的黑色透明)

本文目录用css实现div的黑色透明如何用CSS设置DIV边框透明div+css,怎样制作背景的透明效果例如设置背景层颜色为黑色,背景为半透明,具体的语法是什么用css实现div的黑色透明现在比较稳妥的做法是做一个半透明的黑色PNG图片,然

2024年7月12日 04:27

html是什么的描述语言(HTML是一个什么语言)

html是什么的描述语言(HTML是一个什么语言)

本文目录HTML是一个什么语言HTML是一种什么语言HTML是一种什么语言它用来描述html是一种描述什么的语言HTML是一个什么语言HTML是超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个

2024年7月15日 07:58

whales(whales怎么读)

whales(whales怎么读)

本文目录whales怎么读Whale的中文意思是whales什么意思whale怎么读音是什么whales怎么读whales的读音是:英 。whales是whale的复数形式。n. 鲸vi. 捕鲸v. 打击例句:1、We may live t

2024年7月23日 19:12

mysql教程第二版课后题答案郑阿奇(mysql 不同两张表求总和)

mysql教程第二版课后题答案郑阿奇(mysql 不同两张表求总和)

这篇文章给大家聊聊关于mysql教程第二版课后题答案郑阿奇,以及mysql 不同两张表求总和对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录mysql 不同两张表求总和大家帮我看一下mysql基础知识一个选择题,谢谢了我感到有

2024年8月3日 23:50

时钟代码源码(怎样做一个电子钟flash)

时钟代码源码(怎样做一个电子钟flash)

本文目录怎样做一个电子钟flash求一个用c++编写的时钟程序的源代码怎样做一个电子钟flash教您把网络实时flash时钟怎样做到您的网页中去 下面先教您把网络实时时钟怎样做到您的网页中去: flash时钟的源代码(在网页上面添加动

2024年6月30日 12:27

皮皮鲁安全特工队(皮皮鲁安全特工队第3季,出现舒克贝塔没有)

皮皮鲁安全特工队(皮皮鲁安全特工队第3季,出现舒克贝塔没有)

本文目录皮皮鲁安全特工队第3季,出现舒克贝塔没有安全特工队皮皮鲁和鲁西西侣情吗安全特工队第四季什么时候播出安全特工队车进水了是哪一集幻影号受伤了有皮皮鲁安全特工队有这集吗舒克贝塔和皮皮鲁安全特工队有什么关系皮皮鲁安全特工队里的娜娜是谁有没有

2024年3月18日 19:15

class文件反编译工具(java反编译工具有哪些)

class文件反编译工具(java反编译工具有哪些)

各位老铁们,大家好,今天由我来为大家分享class文件反编译工具,以及java反编译工具有哪些的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录jav

2024年7月3日 12:06

pause的意思(pause什么意思啊)

pause的意思(pause什么意思啊)

本文目录pause什么意思啊pause的中文翻译pause是什么键啊pause 和 halt的区别pause什么意思啊pause英延长号vi.暂停,中止; 逗留,停滞; (按暂停键)暂停放音; 犹豫第三人称单数:pauses复数:pause

2024年5月13日 08:42

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1154
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1151
标签列表

热门搜索