根据ACCESS窗体控件文字多少动态调整控件字体大小

合集下载

如何实现控件随对话框大小变化而自动调整大小和位置

如何实现控件随对话框大小变化而自动调整大小和位置

如何实现控件随对话框大小变化而自动调整大小和位置VC++ 2009-12-28 20:27:42 阅读461 评论0字号:大中小订阅1. 处理对话框的WM_SIZE,然后用MoveWindow或者SetWindowPos来把对话框上面的控件重新调整新位置和大小。

2. 基本的做法就是响应WM_SIZE消息,并按照窗口大小比例来调整控件的位置和大小,控件的大小最好设置成窗口的百分之几,这样的话,就可以根据窗口的大小随时调整了。

3. 每次OnSize 即可获得一个CRect,然后根据这个CRect来确定这些控件的位置和大小,使用函数MoveWindow 或SetWindowpos实现。

4.1)通过下面两个函数获取的是显示屏幕的大小【屏幕的分辨率】(不包括任务栏等区域):int nFullWidth=GetSystemMetrics( SM_CXFULLSCREEN ); //屏幕宽度int nFullHeight=GetSystemMetrics( SM_CYFULLSCREEN ); //屏幕高度2)这两个函数获取的是真正屏幕的大小【屏幕的分辨率】(包括任务栏等区域):int cx = GetSystemMetrics( SM_CXSCREEN );int cy = GetSystemMetrics( SM_CYSCREEN );如:用前两个函数获取的大小可能是1024*687 ,而用下边两个获取的就是1024*768。

5. 在OnSize() 中调用:GetClientRect() 和GetWindowRect() 函数可获取窗口大小,但需注意得到的是设备坐标,如果需要画图什么的还需要转换成逻辑坐标。

6. 字体大小随窗口变化而自动变化,比如说始终使字的高度始终占窗口的1/3。

使用:1). 在Creat中将nHeight设成窗口长度或者宽度的一定比值就行了(最好在onsize函数中设置);2). 使用WM_FONTCHANGE 消息。

Access数据库程序设计(第二版)课件ch4-使用窗体编辑与显示信息

Access数据库程序设计(第二版)课件ch4-使用窗体编辑与显示信息
在Access中有6种基本类型的窗体。下面先介绍其中 的3种,另外的3种在本章的4.4节介绍。
1. 纵栏式窗体
又称为全屏幕窗体。一次只显示一条记录,记 录中的字段按列的形式排列在屏幕上,每列的左边 显示字段名,右边显示对应的内容。纵栏式窗体常 用于浏览和输入数据,窗体中的文本框是用来显示 或输入数据。图5.1所示的就是一个纵栏式窗体。
在Access中,不管是窗体还是报表,创建和使用控件的过程基 本相同。
2. 常用控件
如图4-8所示的工具箱中包含了一个选择对象按钮、 一个控件向导按钮以及常用的18种控件。其中主要控件的 作用如下:
图4-8 空白窗体与工具箱
⑴ 标签
标签在窗体或报表上显示描述性的文本信息, 其显示的内容可以是一行或者多行。例如,窗体或 报表的标题文字,字段的标题等。标签是不接受输 入的非结合性控件。还可以将标签与其他控件结合 使用,用于说明其他控件的标题或者显示信息。经 常与标签控件结合使用的控件有文本框、选项组及 组合框等等。
第4章 使用窗体输入或显示信息
本章内容
Windows良好的用户界面是其受到广泛欢迎的重要原因, 直观可视的窗口是Windows用户界面的重要部分。在Access中,窗 体为用户提供了观察与操纵数据的界面,它提供了直观且灵活的 浏览、输入与修改数据的方法。用户可以根据实际需要,设计出 任何能够想象到的Windows风格的窗体。在本章中,我们将学习: Access窗体的组成及类型 向导及设计视图创建窗体、子窗体以及以窗体中创建图表 在窗体中添加控件、设置控件的属性并对其进行编辑, 利用窗体操作数据 编辑与美化窗体
列表框和组合框基本类似,只是数据列表一直显示 出来,用户只能从下拉列表中选择数据,但是选择 的数据项数可以不限于一个。

《Access数据库应用技术》课件第4章

《Access数据库应用技术》课件第4章

弹出如图4-7所示的“窗体向导”对话框(一)。在“表/查询”
项中选择“学生”表,然后将所有字段选定,单击“下一步”
按钮。
(3) 在“窗体向导”对话框(二)中设置窗体的布局,这
里选择“纵栏表”,如图4-8所示,单击“下一步”按钮。
图4-7 “窗体向导”对话框(一)
图4-8 “窗体向导”对话框(二)
所创建的窗体如图4-16所示。
图4-15 “图表向导”对话框(四)
图4-16 “班级人数图表”窗体
4.2.4 在设计视图中创建窗体 实例4.4 创建“课程信息”窗体。 操作步骤如下: (1) 打开教学管理数据库。 (2) 在“数据库”窗口中,单击“对象”下的“窗体”。
用鼠标左键双击右侧列表中的“在设计视图中创建窗体”项, 打开窗体设计视图,如图4-17所示。
4.1.4 窗体的组成 窗体对象的组成包括窗体页眉节、页面页眉节、主体节、
页面页脚节及窗体页脚节等五部分,如图4-1所示。一般情 况下,只使用部分窗体节,以使得用户能更有效地使用窗体。 大部分窗体只使用主体节、页面页眉节和页面页脚节即可满 足一般性应用需求。
图4-1 窗体的组成
4.2 创建窗体操作实例
(11) 关闭属性窗口,依次为各个文本框设置控件来源, 结果如图4-25所示。
说明:控件的添加也可从字段列表框中拖拽所需字段到 窗体中,系统将自动选择相应的控件与所拖拽的字段对应。
图4-25 设置其他各控件的来源
(12) 按图4-26所示,调整各控件的大小与位置。 说明:用鼠标拖拽出一矩形区域,可选中该区域中的所 有控件。单击鼠标右键,在弹出的快捷菜单中可选择“对齐” 或“大小”菜单中的各子菜单项对控件进行快速调整。
3. 数据透视表视图和数据透视图视图 数据透视表视图或数据透视图视图中的数据与相应的窗 体绑定。在这些视图中,可以动态地更改窗体的版面,从而 以各种不同方法分析数据;可以重新排列行标题、列标题和 筛选字段,直到形成所需的版面布置为止。每次改变版面布 置时,窗体会立即按照新的布置重新计算数据。 在数据透视表视图中,通过排列筛选行、列和明细等区 域中的字段,可以查看明细数据或汇总数据。 在数据透视图视图中,通过选择一种图表类型并排列筛 选序列、类别和数据区域中的字段,可以直观地显示数据。

Visual C++中动态改变控件和对话框字体(大小)

Visual C++中动态改变控件和对话框字体(大小)

Visual C++中动态改变控件和对话框字体(大小)1 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。

对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。

例子:1、改静态文体的ID,如:IDC_STATIC12、添加一个Edit控件,建立一个关联的控件m_editControl。

3、在OnInitDialog中添加如下代码:CFont * f;f = new CFont;f->CreateFont(16, // nHeight0, // nWidth0, // nEscapement0, // nOrientationFW_BOLD, // nWeightTRUE, // bItalicFALSE, // bUnderline0, // cStrikeOutANSI_CHARSET, // nCharSetOUT_DEFAULT_PRECIS, // nOutPrecisionCLIP_DEFAULT_PRECIS, // nClipPrecisionDEFAULT_QUALITY, // nQualityDEFAULT_PITCH | FF_SWISS, // nPitchAndFamily_T("Arial")); // lpszFacGetDlgItem(IDC_STA TIC1)->SetFont(f); 需要注意的是,这里我们使用的是CFont指针,而不是普通的CFont局部变量, 在非MFC程序,首先用CreateFont来建立一个字体句柄,然后再用SendMessage发给控件WM_SETFONT消息,将建立的字体句柄赋值过去,就可以了。

实例下载:/download/CtrlFont.zip2 但是整个对话框或窗口的字体的大小,使用对话框或窗口的SetFont()函数却没有任何的作用.可以在初始化时遍历每个控件分别设置来处理,但这里说另一种使用回调函数的简单方法::调用系统的API:::EnumChildWindows(). ,传入回调函数和重新定义的字体.(第一个参数不用管啊,本来就有啊))1)在文档视图结构中CMainFrame::OnCreate().中调用::EnumChildWindows(). 实现所有窗口和子窗口字体改变2) 在对话框的OnInitDialog(). 中调用::EnumChildWindows(). 改变对话窗上的所有控件. 回调函数如下:// lParam is a pointer to CFont objectBOOL __stdcall SetChildFont(HWND hwnd, LPARAM lparam){CFont *pFont = (CFont*)lparam;CWnd *pWnd = CWnd::FromHandle(hwnd);pWnd->SetFont(pFont);return TRUE;}使用1:BOOL CAboutDlg::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization here::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)g_Font.GetFont());return TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSE}使用2:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FL YBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){TRACE0("Failed to create toolbar\n");return -1; // fail to create}if (!m_wndStatusBar.Create(this) ||!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))){TRACE0("Failed to create status bar\n");return -1; // fail to create}m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)g_Font.GetFont());return 0;}(很好用,不像mfc中的那个垃圾setfont(),设置了对话框的没有一点反应!)实例下载:/gdi/SetFont/SetFont_demo.zip3 如何在mfc中实现,当系统的字体变大的时候,对话框上面的字体也相应的变大?(非常感谢) //IconFontLOGFONT logFont;int size = sizeof(LOGFONT);bool isGood = SystemParametersInfo(SPI_GETICONTITLELOGFONT,size,&logFont,0);if(isGood == true){CFont * f;f = new CFont;const LOGFONT* pFont = new LOGFONT(logFont);f->CreateFontIndirectW(pFont);//::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)f);}//other FontNONCLIENTMETRICS ncm = new NONCLIENTMETRICS();bool isGood = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), ref ncm, 0);if (isGood == true){LOGFONT logFont2;//logFont2=ncm.lfntCaptionFont);//CaptionFont//logFont2 =ncm.lfntSMCaptionFont;//CaptionFont_Small//logFont2 = ncm.lfntMenuFont;//MenuFont//logFont2 = ncm.lfntStatusFont;//StatusFontlogFont2 = ncm.lfntMessageFont;//MessageFontCFont * f;f = new CFont;const LOGFONT* pFont = new LOGFONT(logFont2);f->CreateFontIndirectW(pFont);//::EnumChildWindows(m_hWnd, ::SetChildFont, (LPARAM)f);}以上是取得系统字体的大小,然后再调用上面的第二种方法,哈哈哈哈哈!窗体上的所有字体都会跟着系统字体的大小改变,哈哈哈哈!主要使用API:SystemParametersinfo该函数查询或设置系统级参数。

Access 控件简介

Access 控件简介

Access 控件简介重要:要求:了解来源:微软整理:Access 软件网本文介绍 Access 中提供的不同类型的控件,并演示如何向窗体和报表添加控件。

控件是窗体或报表的组成部分,可用于输入、编辑或显示数据。

例如,对于报表而言,文本框是一个用于显示数据的常见控件;对于窗体而言,文本框是一个用于输入和显示数据的常见控件。

其他常见控件包括命令按钮、复选框和组合框(下拉列表)。

本文内容了解控件了解布局(需要2007或更高版本的Access)了解控件利用控件,您可以查看和处理数据库应用程序中的数据。

最常用的控件是文本框,其他控件包括命令按钮、标签、复选框和子窗体/子报表控件。

控件可以是绑定控件、未绑定控件或计算控件:绑定控件其数据源是表或查询中的字段的控件称为绑定控件。

使用绑定控件可以显示数据库中字段的值。

值可以是文本、日期、数字、是/否值、图片或图形。

例如,显示雇员姓氏的文本框可能会从“雇员”(Employees) 表中的“姓氏”(Last Name) 字段获取此信息。

未绑定控件不具有数据源(如字段或表达式)的控件称为未绑定控件。

可以使用未绑定控件显示信息、图片、线条或矩形。

例如,显示窗体标题的标签就是未绑定控件。

计算控件其数据源是表达式(而非字段)的控件称为计算控件。

通过定义表达式来指定要用作控件的数据源的值。

表达式可以是运算符(如=和+)、控件名称、字段名称、返回单个值的函数以及常数值的组合。

例如,以下表达式将“单价”(Unit Price) 字段的值乘以常数值 (0.75) 来计算折扣为 25% 的商品价格。

=[Unit Price] * 0.75表达式可以使用来自窗体或报表的基础表或查询中的字段的数据,也可以使用来自窗体或报表中的另一个控件的数据。

注释通过添加计算字段可在表中执行计算,或通过在查询网格的“字段”行中输入表达式可在查询中执行计算。

之后,只需将窗体和报表绑定到这些表或查询,即可在窗体或报表上显示计算,而无需创建计算控件。

ACCESS?设置字段的属性

ACCESS?设置字段的属性

ACCESS 设置字段的属性1. 字段大小字段大小即字段的长度,该属性用来设置存储在字段中文本的最大长度或数字的取值范围。

因此,只有文本型、数字型和自动编号型字段才具有该属性。

文本型字段的大小,在1~255之间,如果文本数据长度超过255个字符,则可以将该字段设置为备注型。

数字类型字段的长度则可以在字段大小列表中进行选择,其中常用的类型所表示的数据范围、小数位数及所占的空间,如表1-1.表1-1 数字型数据的不同保存类型在减小字段的大小时要小心,如果子啊修改之前字段中已经有了数据,在减小长度时可能会丢失数据,对于文本型字段,将截取超出的部分;对于数字型字段,如果原来是单精度或双精度数据,在改为整数时,会自动将小数取整。

2. 字段格式字段的“格式”属性用来确定数据在屏幕上的显示方式以及打印方式,从而使表中的数据输出有一定的规范,浏览、使用更为方便。

Access系统提供了一些字段的常用格式供选择。

如表2-1,表2-2,表2-3.表2-1 数字/货币型字段的格式表2-2 日期/时间型字段的格式表2-3 是/否型字段的格式格式设置只是改变数据输出的样式,对输入数据本身没有影响,也不影响数据的存储格式。

若要让数据按输入时的格式显示,则不要设置“格式”属性。

文本、备注、超链接等字段没有系统预定义格式,可以自定义格式。

自定义文本与备注字段的格式符号,见表2-4.表2-4 文本/备注型常用格式符号3. 输入掩码输入掩码属性用来设置字段中的数据输入格式,并限制不符规格的文字或符号输入。

这种特定的输入格式,对在日常生活中相对固定的数据形式尤其适用,如电话号码、日期、邮政编码等。

人工设置输入掩码的方法是,在“输入掩码”编辑框中直接输入格式符,可以使用的格式符及其代表的含义,如表3-1.表3-1 输入掩码属性中使用的格式符如果同时使用“格式”和“输入掩码”属性时,要注意它们的结果不能互相冲突。

4. 默认值当表中有多条记录的某个字段值相同时,可以将相同的值设置为该字段的默认值,这样每产生一条新记录时,这个默认值就自动加到该字段中,避免重复输入同一数据。

Access窗体的操作

Access窗体的操作

2.添加记录和修改记录 (1)添加记录。在窗体中向窗体基表或查询中添加新记录 数据是窗体的重要功能之一。如果要添加一个新的记录,可 以先打开要添加记录的窗体,单击窗体左下角的“空白(新) 记录”按钮,此时窗体定位到第一个空白页,在此空白页, 通过各控件输入相应的数据,当新记录的各项数据输入完毕 后,单击记录定位工具中的“空白(新)记录”、“前一条 记录”、“后一条记录”都将引起Access 2002自动将新记 录保存到基表中。也可以在输入完数据后,单击工具栏上的 “保存”按钮,将刚输入的数据保存到表中。 (2)修改记录。除了可以在窗体中添加新记录外,也可以 利用窗体修改基表或查询中的数据。要修改数据,可以直接 在各个控件中输入新的数据,这样将自动修改基表的相应字 段值,单击工具栏上的“保存”按钮即可保存所做的修改, 改变当前记录也可以保存做的修改。
图6-11 表格式窗体
3.数据表窗体 一种常用的格式,是在窗体中以紧凑的方式显示多条记 录,如图6-12所示。
图6-12 数据表窗体
2.3 用图表向导创建图表窗体 使用图表可以形象化地表达数据的变化,将包 含大量数据的表格变成一张生动图表,使读者能够 直观地了解数据的变化状况及发展趋势。Access 2002提供了“图表向导”,在多数情况下,都可以 使用该向导来创建图表窗体。
BACK
2 创建窗体
2.1 用向导创建窗体 Access 2003提供了几种向导帮助创建窗体,选择不 同的向导,可以建立不同风格的窗体。向导会通过询问一 步步收集数据,并根据输入建立窗体,对于初学者来说是 个好方法。利用向导创建好窗体后,可以在窗体视图中加 以修改。 使用窗体向导能够基于一个或多个表或查询来创建窗 体。向导会要求输入所需记录源、字段、版式和格式信息, 根据用户的大案创建窗体。

Access第41-50套上机考试题库

Access第41-50套上机考试题库

1第41套 上机考试试题一、基本操作题在考生文件夹下,存在一个Excel 文件“Test.xls ”和一个数据库文件“samp1.accdb ”。

“samp1.accdb ”数据库文件中已建立三个表对象(名为“线路”、“游客”和“团队”)和一个窗体对象(名为“brow ”)。

试按以下要求,完成表和窗体的各种操作:(1)将“线路”表中的“线路ID ”字段设置为主键;设置“天数”字段的有效性规则属性,有效性规则为大于0。

(2)将“团队”表中的“团队ID ”字段设置为主键;添加“线路ID ”字段,数据类型为“文本”,字段大小为8。

(3)将“游客”表中的“年龄”字段删除;添加两个字段,字段名分别为“证件编号”和“证件类别”;“证件编号”的数据类型为“文本”,字段大小为20;使用查阅向导建立“证件类别”字段的数据类型,向该字段键入的值为“身份证”、“军官证”或“护照”等固定常数。

(4)将考生文件夹下Test.xls 文件中的数据链接到当前数据库中。

要求:数据中的第一行作为字段名,链接表对象命名为“tTest ”。

(5)建立“线路”、“团队”和“游客”三表之间的关系,并实施参照完整性。

(6)修改窗体“brow ”,取消“记录选择器”和“分隔线”显示,在窗体页眉处添加一个标签控件(名为Line ),标签标题为“线路介绍”,字体名称为隶书、字号大小为18。

二、简单应用题考生文件夹下存在一个数据库文件“samp2.accdb ”,里面已经设计好“tA ”和“tB ”两个表对象。

试按以下要求完成设计:(1)创建一个查询,查找并显示所有客人的“姓名”、“房间号”、“电话”和“入住日期”四个字段内容,所建查询命名为“qT1”。

(2)创建一个查询,能够在客人结账时根据客人的姓名统计这个客人已住天数和应交金额,并显示“姓名”、“房间号”、“已住天数”和“应交金额”,所建查询命名为“qT2”。

注:输入姓名时应提示“请输入姓名:”。

Access入门教程大全

Access入门教程大全
VBA编程元素
VBA编程涉及变量、数据类型、运算符、控制结构(如条件语句和 循环语句)等基本元素。
Access对象模型
了解Access对象模型是VBA编程的基础,包括数据库对象(如表、 查询、窗体和报表)以及它们的方法和属性。
自定义函数和过程编写
自定义函数
自定义函数是一段可以执行特定任务的VBA代码块,可以返回一个值。通过编写自定义 函数,可以实现复杂的计算和数据处理任务。
监控和审计
监控用户的操作行为,并进行审计,以确保数据的安全和合规性。
防止数据泄露措施
加密数据库
使用强密码对数据库进行加密,以防止未经授权 的访问和数据泄露。
限制外部连接
限制从外部应用程序或网站直接连接到数据库, 以减少数据泄露的风险。
定期审查和更新
定期审查数据库的安全设置和权限分配,并及时 更新和修补已知的安全漏洞。
功能区
详细解释Access的功能区,包括“文件”、 “开始”、“创建”、“外部数据”和“数 据库工具”等选项卡。
导航窗格
工作区
介绍导航窗格的作用及如何管理数据库对象。
解释工作区的概念及如何在此区域进行各种 操作。
创建数据库和表
创建数据库 详细讲解如何在Access中创建一个 新的数据库文件。
设计视图与数据表视图
压缩数据库
通过Access提供的“压缩和修复数据库”功能,可以 减小数据库文件大小,提高性能。
修复数据库
当数据库文件损坏或无法打开时,可以使用“压缩和 修复数据库”功能进行修复。
定期维护
建议定期对数据库进行压缩和修复操作,以确保数据 库的稳定性和性能。
数据备份恢复策略
定期备份
制定定期备份计划,确保重要数据的 安全。可以使用Access的“备份数据

2013年全国计算机等级二级Access全真模拟试卷(1)-计算机二级考试ACCESS试卷与试题

2013年全国计算机等级二级Access全真模拟试卷(1)-计算机二级考试ACCESS试卷与试题
45. 设置相关属性,使表对象“员工表”中密码字段最多只能输入五位0—9的数字。[3分] 参考答案: 步骤1:单击“员工表”。单击“设计”按钮,选中“密码”字段。在其“字段属性”中的“输入掩码”行输入: 00000。 步骤2:单击“保存”按钮。
46. 建立“员工表”和“部门表”的表间关系,并实施参照完整。[3分] 参考答案: 步骤1:在“sAmpl.mDB”数据库中,单击“关系”按钮, 添加“员工表”和“部门表”,关闭“显示表”对话 框。 步骤2:单击“员工表”中的“部门编号”字段,按住左键拖到“部门表”的“部门编号”上。 步骤3:在 弹出“编辑关系”的对话框中勾选“设置参照完整性”复选框。 步骤4:单击“创建”按钮。 步骤5:单击“保 存”按钮。关闭“sAmpl.mDB”数据库。
16. 以下程序段运行后,消息框的输出结果是( )。
A -1 B0 C1 D2
[1分]-----正确答案(B)
17. 下列对象中不属于Access对象的是( )。[1分]-----正确答案(D) A表 B 查询 C 窗体 D 文件夹
18. 要改变窗体上文本框控件的数据源,应设置的属性是( )。[1分]-----正确答案(B) A 记录源 B 控件来源 C 筛选查阅 D 默认值
29. 在Access中已建立了“学生”表,表中有“学号”“姓名”“性别”和“入学成绩”等字段。执行如下SQL命令: Select性别,avg(入学成绩)From学生Group By性别 其结果是( )。[1分]-----正确答案(B) A 计算并显示所有学生的性别和入学成绩的平均值 B 按性别分组计算并显示性别和入学成绩的平均值 C 计算并显示所有学生的入学成绩的平均值 D 按性别分组计算并显示所有学生的入学成绩的平均值
21. 下列可作为VBA变量名的是( )。[1分]-----正确答案(C) A a&b B a?b C 4a D const

国家二级ACCESS机试选择题界面设计模拟试卷3_真题-无答案

国家二级ACCESS机试选择题界面设计模拟试卷3_真题-无答案

国家二级ACCESS机试选择题(界面设计)模拟试卷3(总分58,考试时间90分钟)1. 选择题1. 在窗体中,要动态改变密体韵叛面布局,重构数据的组织方式,修改布局后可以重新计算数据实现数据的汇总、小计和合计,应该选用的视图是A. 数据表视图B. 布局视图C. 数据透视表视凋D. 数据透视图视图2. 列表框与组合框的特点是A. 列表框和组合框都可以显示—行或多行数据B. 可以在列表框中输入新值,而组合框不能C. 可以在组合框中输入新值,而列表框不能D. 在列表框和组合框中均可以输入新值3. 在Access中,通过窗体对表进行操作,不能完成的功能是A. 输入新记录B. 修改原有记录C. 存储记录数据D. 查询表中记录4. 在窗体设计时,要改变窗体的外观,应设置的是A. 控件B. 标签C. 属性D. 数据源5. 下列选项中,不属于窗体控件的是A. 复选框B. 组合框C. 列表框D. 消息框6. 设置计算型控件的控件来源时,计算表达式的第一个符号是A. 逗号,B. 等号=C. 左园括号(D. 左方扩号[7. 若要在窗体的文本框中输入用户密码,但屏幕不能显示出密码的文字信息要用“*”号代替,则应设置的属性是A. 默认值B. 输入密码C. 标题D. 密码8. 在“教师档案”表中使用OLE对象字段存放照片,在是用向导为该表创建窗体时,“照片”字段所使用的控件是A. 绑定对象框B. 图像C. 附件D. 未绑定对象框9. 进行密体设计时,可以设置窗体、主体、标签或文本框等内容韵属性。

下列属性中,属于窗体的属性是A. 获得焦点B. 字体颜色C. 控件来源D. 输入掩码10. 要在窗体中显示当前系统日期和时间:则应将相应文本框的控件来源属性设置为A. =Dam()B. =SysTime()C. =Now()D. =Tim()11. 在报表的设计视周中,不能使用的是A. 选项卡B. 文本C. 图形D. 页眉页脚12. 在设计报表耐,为了在报表的每页底部都输出单位名称信息,应设置的是A. 报表页脚B. 报表主体C. 页面页脚D. 报表页眉13. 若要在窗体中使用文本框接受用户输入的密码,要保证密码能够保密,屏幕显示要用“*”号代替,则应设置的属性是A. 输入掩码B. 默认值C. 标题D. 密码14. “学生基本情况"表中用OLE对象字段保存照片,在使用向导为该表创建窗体时,“照片”字段所使用的控件是A. 绑定对象框B. 图像C. 文本框D. 未绑定对象框15. 窗体设计时可以设置窗体、主体、标签或文本框等内容的属性。

C#窗体缩放的时候同步改变控件的大小和字体

C#窗体缩放的时候同步改变控件的大小和字体

C#窗体缩放的时候同步改变控件的⼤⼩和字体最新在写个⼩程序,需要窗体填满各种尺⼨的显⽰器,同时需要同步缩放控件的⼤⼩。

于是就写了个类,简单的调⽤⼀下即可解决问题。

这个类可以同步缩放控件的位置,宽度⾼度,字体⼤⼩。

使⽤的时候在FormLoad⾥⾯绑定⼀下即可:public partial class Form1 : Form{private ControlResizer Resizer; //定义缩放类public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//绑定Resizer=new ControlResizer(this);}}控件缩放类的代码:1///<summary>2///同步缩放窗体上控件的⼤⼩和字体3///</summary>4public class ControlResizer5 {6class ControlPosAndSize7 {8public float FrmWidth { get; set; }9public float FrmHeight { get; set; }10public int Left { get; set; }11public int Top { get; set; }12public int Width { get; set; }13public int Height { get; set; }14public float FontSize { get; set; }1516 }1718private Form _form;1920//句柄,⼤⼩信息21private Dictionary<int, ControlPosAndSize> _dic = new Dictionary<int, ControlPosAndSize>();22public ControlResizer(Form form)23 {24 _form = form;25 _form.Resize += _form_Resize;//绑定窗体⼤⼩改变事件2627 _form.ControlAdded += form_ControlAdded; //窗体上新增控件的处理28 _form.ControlRemoved += form_ControlRemoved;2930 SnapControlSize(_form);//记录控件和窗体⼤⼩31 }3233void form_ControlRemoved(object sender, ControlEventArgs e)34 {35var key = e.Control.Handle.ToInt32();36 _dic.Remove(key);37 }3839//绑定控件添加事件40private void form_ControlAdded(object sender, ControlEventArgs e)41 {42var ctl = e.Control;43var ps = new ControlPosAndSize44 {45 FrmHeight = _form.Height,46 FrmWidth = _form.Width,47 Width = ctl.Width,48 Height = ctl.Height,49 Left = ctl.Left,50 Top = ctl.Top,51 FontSize = ctl.Font.Size52 };53var key = ctl.Handle.ToInt32();54 _dic[key] = ps;55 }5657void _form_Resize(object sender, EventArgs e)58 {59 ResizeControl(_form);60 }6162private void ResizeControl(Control control)63 {64foreach (Control ctl in control.Controls)65 {66var key = ctl.Handle.ToInt32();67if (_dic.ContainsKey(key))68 {69var ps = _dic[key];70var newx = _form.Width / ps.FrmWidth;71var newy = _form.Height / ps.FrmHeight;7273 ctl.Top = (int)(ps.Top * newy);74 ctl.Height = (int)(ps.Height * newy);7576 ctl.Left = (int)(ps.Left * newx);77 ctl.Width = (int)(ps.Width * newx);7879 ctl.Font = new Font(, ps.FontSize * newy, ctl.Font.Style, ctl.Font.Unit); 8081if (ctl.Controls.Count > 0)82 {83 ResizeControl(ctl);84 }8586 }8788 }89 }9091///<summary>92///创建控件的⼤⼩快照,参数为需要记录⼤⼩控件的容器93///</summary>94private void SnapControlSize(Control control)95 {96foreach (Control ctl in control.Controls)97 {98var ps = new ControlPosAndSize99 {100 FrmHeight = _form.Height,101 FrmWidth = _form.Width,102 Width = ctl.Width,103 Height = ctl.Height,104 Left = ctl.Left,105 Top = ctl.Top,106 FontSize = ctl.Font.Size107 };108109var key = ctl.Handle.ToInt32();110111 _dic[key] = ps;112113//绑定添加事件114 ctl.ControlAdded += form_ControlAdded;115 ctl.ControlRemoved += form_ControlRemoved;116117if (ctl.Controls.Count > 0)118 {119 SnapControlSize(ctl);120 }121122 }123124 }125126 }。

根据ACCESS窗体控件文字多少动态调整控件字体大小

根据ACCESS窗体控件文字多少动态调整控件字体大小

根据ACCESS窗体控件文字多少动态调整控件字体大小我们在使用EXCELL时,能够使用“设置单元格格式”|“对齐”|“文本控制”,对文本框在预定义字体大小下不能显示所有文字时,有“缩小字体填充”选项,缩小字体后,文字就会全部显示。

ACCESS 窗体能否实现动态“缩小字体以显示所有文字”功能呢?网上有介绍ACCESS报表实现“缩小字体以显示所有文字”的功能:是通过主体格式化事件实现的。

代码如下:Option Compare DatabaseOption ExplicitF As Integer '字体大小Private Sub Report_Load()F = Me.Address.FontSize '在启动时先将需要改变的控件的正常字体保存起来’这里假定Address是我们要动态调整字体大小的控件End Sub’然后在在报表主体格式化事件中对控件进行格式化Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)Dim cW As DoubleMe.Address.FontSize = F '每次主体格式化时,先将字体设为正常大小If Me.Address.Width < Me.TextWidth(Me.Address) ThencW = (Me.Address.Width - 100) / Me.TextWidth(Me.Address)Me.Address.FontSize = Int(Me.Address.FontSize * cW)End IfEnd Sub然而,上述代码并不能在窗体中实现。

主要因为:一是窗体没有Format事件,二是窗体没有TextWidth方法。

因此不能计算控件所有文字的总长度。

其实在窗体中有一个各节有“绘制(PAINT)”事件可以起到同样的作用。

在窗体中,窗体节的控件是在“绘制”事件中格式化的。

ACCESS实例教程窗体的操作

ACCESS实例教程窗体的操作
3,事件属性卡中显示当前控件所能识别的动作, 如:单击、双击等。
4,其他属性卡,定义控件的附加属性。 如:名称。控件的名称是一个字符串,在VBA程序用名称 调用控件。窗体中每一个控件都有名称,名称是惟一的。
• ACCESS实例
4.2.3 窗体的常用属性
窗体的常用属性有:标题、记录选择器、导航 按钮、分隔线、图片、记录源等。
4.2.2 属性对话框
属性决定窗体和控件的结构、外观以及数据特性。任何对 象都有一系列属性,不同对象拥有的属性也不相同。
先选取对象,然后再给选取的对象定义属性。
• ACCESS实例
1,格式属性卡,定义控件的显示格式和外观样式。 如:前景色、背景色、宽度、高度、上边界、左边界等。
2,数据属性卡,定义控件的数据来源和操作数据的规则。 如:控件来源、输入掩码、有效性规则、默认值等。
• ACCESS实例
(2)在设计视图中打开主窗体→将子窗体拖入主窗体中→ 整理布局。 (3)转到窗体视图,显示主/子窗体。
• ACCESS实例
(3)单击“下一步”→为组合框指定标签为“职称”→单击 “完成”。 (4)类似方法建立列表框→自行键入的值依次为:计算机、英 语、中文、法律→将列表框数值保存在“系别”字段中。 (5)整理各控件位置→转到窗体视图。显示:
• ACCESS实例
4.3.6 命令按钮
用来执行特定的操作,例如,单击命令按钮关闭窗体。 通常给命令按钮附加一段VBA代码或一个宏,也可以用“向 导”给命令按钮指定一些特殊操作。 例:用向导建立命令按钮 (1)按下 “控件向导”→ 单击“命令按钮”控件→在 窗体中画按钮大小→在对话 框中选类别为“记录导 航”→选操作为“转至前一 项记录”。
• ACCESS实例

Access表中各种属性的设置

Access表中各种属性的设置

ACCESS数据表中各个属性的含义、设置方法:格式:Format 属性:可以使用Format属性自定义数字、日期、时间和文本的显示方式。

Format属性只影响数据的显示方式,不影响数据的存储方式。

String型,可读/写。

expression.Formatexpression 必需。

返回“应用于”列表中的一个对象的表达式。

说明可以使用预定义的格式,或者使用格式符号创建自定义格式。

Format对不同的数据类型使用不同的设置,对于控件,可以在控件的属性表中设置该属性。

对于字段,可以在表“设计”视图或“查询”窗口的“设计”视图中(“字段属性”的属性表中)设置该该属性。

也可以使用宏或Visual Basic。

注释在 Visual Basic 中,可输入对应预定义格式的子符串表达式或者输入自定义格式。

Access 为“时间/日期”、“数字”和“货币”、“文本”和“备注”和“是/否”数据类型提供预定义格式,预定义格式与国家/地区设置有关。

Access显示对应于所选国家/地区的格式,例如,如果在“常规”选项卡中选取“英语(美国)”,则1234.56 的“货币”格式是$1,234.56,如果在“常规”选项卡中选取“英语(英国)”,该数字将显示为£1,234.56。

如果在表“设计”字视图中设置字段的Format属性,Access使用该格式在数据表中显示数据。

对窗体和报表上的新控件也应用字段的Format属性。

在任意数据类型的自定义格式中都可以使用以下符号:不能将“数字”和“货币”型的数据类型的自定义格式符号与“日期/时间”、“是/否”或“文本”和“备注”格式符号混合使用。

如果在数据上定义了输入掩码同时又设置了Format属性,在显示数据时,Format属性将优先,而忽略输入掩码。

例如,如果在表“设计”视图中创建了“密码”输入掩码,同时又为字段设置了Format属性,则无论是在表或在窗体上的控件中,数据都将根据Format属性来显示,而“密码”输入掩码则被忽略。

窗体练习题

窗体练习题

窗体练习题一、窗体基础概念1. 窗体是什么?请简述其主要功能。

2. 窗体有哪几种常见的布局方式?3. 窗体中的控件有哪些分类?4. 窗体与表单有什么区别?5. 请列举五种常见的窗体事件。

二、窗体设计6. 如何设置窗体的?7. 如何设置窗体的背景颜色?8. 如何设置窗体的边框样式?9. 如何设置窗体的大小和位置?10. 如何在窗体中添加控件?三、窗体控件11. 请列举五种常用的文本控件。

12. 如何设置文本框的默认值?13. 如何限制文本框中输入的字符长度?14. 如何设置复选框的选中状态?15. 如何使用单选按钮实现互斥选择?四、窗体交互16. 如何响应用户的事件?17. 如何响应用户的键盘事件?18. 如何响应用户的鼠标事件?19. 如何实现窗体之间的数据传递?20. 如何实现窗体之间的页面跳转?五、窗体布局21. 如何使用表格布局窗体?22. 如何使用流式布局窗体?23. 如何使用绝对布局窗体?24. 如何使用相对布局窗体?25. 如何使用Flex布局窗体?六、窗体样式26. 如何设置窗体控件的字体样式?27. 如何设置窗体控件的字体大小?28. 如何设置窗体控件的字体颜色?29. 如何设置窗体控件的背景图片?30. 如何设置窗体控件的边框样式?七、窗体高级功能31. 如何实现窗体的全屏显示?32. 如何实现窗体的多标签页功能?33. 如何实现窗体的滚动条功能?34. 如何实现窗体的拖动功能?35. 如何实现窗体的自定义关闭按钮?八、窗体与数据库36. 如何在窗体中连接数据库?37. 如何在窗体中执行SQL查询?38. 如何在窗体中插入数据?39. 如何在窗体中更新数据?40. 如何在窗体中删除数据?九、窗体与网络41. 如何在窗体中发送HTTP请求?42. 如何在窗体中接收HTTP响应?43. 如何在窗体中解析JSON数据?44. 如何在窗体中解析XML数据?45. 如何在窗体中实现文件和?十、窗体综合应用46. 请设计一个登录窗体,包括用户名、密码输入框和登录按钮。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

根据ACCESS窗体控件文字多少动态调整控件字体大小
我们在使用EXCELL时,能够使用“设置单元格格式”|“对齐”|“文本控制”,对文本框在预定义字体大小下不能显示所有文字时,有“缩小字体填充”选项,缩小字体后,文字就会全部显示。

ACCESS 窗体能否实现动态“缩小字体以显示所有文字”功能呢?
网上有介绍ACCESS报表实现“缩小字体以显示所有文字”的功能:是通过主体格式化事件实现的。

代码如下:
Option Compare Database
Option Explicit
F As Integer '字体大小
Private Sub Report_Load()
F = Me.Address.FontSize '在启动时先将需要改变的控件的正常字体保存起来
’这里假定Address是我们要动态调整字体大小的控件
End Sub
’然后在在报表主体格式化事件中对控件进行格式化
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
Dim cW As Double
Me.Address.FontSize = F '每次主体格式化时,先将字体设为正常大小
If Me.Address.Width < Me.TextWidth(Me.Address) Then
cW = (Me.Address.Width - 100) / Me.TextWidth(Me.Address)
Me.Address.FontSize = Int(Me.Address.FontSize * cW)
End If
End Sub
然而,上述代码并不能在窗体中实现。

主要因为:一是窗体没有Format事件,二是窗体没有TextWidth方法。

因此不能计算控件所有文字的总长度。

其实在窗体中有一个各节有“绘制(PAINT)”事件可以起到同样的作用。

在窗体中,窗体节的控件是在“绘制”事件中格式化的。

可以按照以下思路,根据显示控件文字多少,动态调整控件(如文本框)
字体大小。

1、文字总长度磅值计算:在窗体中,可以直接使用字号(实际是磅值)作为一个文字的大小。

控件大小与磅值的换算倍数为20。

这时控件文字总长度可用len(控件名)*控件字体概算。

2、新字体计算:使用控件长度/20得到长度的磅值,再用磅值除以字数,即得到新字体大小。

因此,其实也可以将字体调大。

只是字体调大后,控件的高度又可能装不下了。

3、与报表不同情况的处理。

报表中某控件绑定的字段,有多少记录,就有多少个最终显示的控件被格式化。

窗体中则一个新记录也要使用控件,以便输入新记录。

由于新记录,没有数据,只是显示一个样子,因此对这个新记录计算文字总长度会出现“找不到控件或字段”的错误。

这里直接忽略即可。

下面以主体节中的文本框“textExt”(实际中用你需要调整的文本框代替),代码如下:
Option Compare Database
Public textExtFontSize as integer
Private Sub Form_Open(Cancel As Integer)
textExtFontSize=textExt.FontSize ‘保存该文本框的预定义字体。

实际中,你也可以在以下过程中使用你预定义的字体大小的具体值,而不需要保存这个值。

End Sub
Private Sub 主体_Paint()
textExt.FontSize= textExtFontSize ‘初始化控件字体为预定义字体
On Error GoTo ExitSub ‘遇到新记录,找不到控件和字段错误时,直接忽略并退出
If textExt.Width/20< textExt.FontSize *len(textExt.FontSize) then
textExt.FontSize= textExt.Width/20/ len(textExt.FontSize)
endif
ExitSub:
End Sub
由于英文字母的宽度比汉字窄,上述代码计算出来的字体偏小,也即,控件有空白存在。

这个可能通过设备的字体结构计算出准确的文
字长度和高度,甚至能调整文字方向。

但上述代码在处理一般自动缩小字体以适应控件宽度的应用中已经足够了。

相关文档
最新文档