当前位置:文档之家› C#将exe运行程序嵌入到自己的winform窗体中

C#将exe运行程序嵌入到自己的winform窗体中

C#将exe运行程序嵌入到自己的winform窗体中
C#将exe运行程序嵌入到自己的winform窗体中

C#将exe运行程序嵌入到自己的winform窗体中

using System;using System.Collections.Generic;using https://www.doczj.com/doc/208236418.html,ponentModel;using System.Data;using System.Drawing;using System.Text;using

System.Windows.Forms;using System.Diagnostics;using System.Runtime.InteropServices;namespace

WindowsTest{ public partial class Form2 : Form

{ Process process = null; IntPtr appWin; private string exeName = ''; [DllImport('user32.dll', EntryPoint = 'GetWindowThreadProcessId', SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

private static extern long GetWindowThreadProcessId(long hWnd, long lpdwProcessId); [DllImport('user32.dll', SetLastError = true)] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport('user32.dll', SetLastError = true)] private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport('user32.dll', EntryPoint = 'GetWindowLongA', SetLastError = true)] private static extern long GetWindowLong(IntPtr hwnd, int nIndex);

[DllImport('user32.dll', EntryPoint = 'SetWindowLongA', SetLastError = true)] private static extern long SetWindowLong(IntPtr hwnd, int nIndex, long dwNewLong); //private static extern int SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong); [DllImport('user32.dll', SetLastError = true)] private static extern long SetWindowPos(IntPtr hwnd, long hWndInsertAfter, long x, long y, long cx, long cy, long wFlags);

[DllImport('user32.dll', SetLastError = true)] private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint); [DllImport('user32.dll', EntryPoint = 'PostMessageA', SetLastError = true)] private static extern bool PostMessage(IntPtr hwnd, uint Msg, long wParam, long lParam); private const int

SWP_NOOWNERZORDER = 0x200; private const int SWP_NOREDRAW = 0x8; private const int

SWP_NOZORDER = 0x4; private const int

SWP_SHOWWINDOW = 0x0040; private const int WS_EX_MDICHILD = 0x40; private const int

SWP_FRAMECHANGED = 0x20; private const int SWP_NOACTIV ATE = 0x10; private const int

SWP_ASYNCWINDOWPOS = 0x4000; private const

int SWP_NOMOVE = 0x2; private const int

SWP_NOSIZE = 0x1; private const int GWL_STYLE = (-16); private const int WS_VISIBLE = 0x10000000; private const int WM_CLOSE = 0x10; private const int WS_CHILD = 0x40000000; public string ExeName { get { return exeName; } set

{ exeName =

value; } } public Form2()

{ InitializeComponent(); }

private void button1_Click(object sender, EventArgs e)

{ this.exeName = @'D:\Program Files\Microsoft Office\OFFICE11\WINWORD.exe'; try

{ // Start the process

process = System.Diagnostics.Process.Start(this.exeName);

// Wait for process to be created and enter idle condition process.WaitForInputIdle(); // Get the main handle appWin =

process.MainWindowHandle; }

catch (Exception ex)

{ MessageBox.Show(this, ex.Message,

'Error'); } // Put it into this form

SetParent(appWin, this.Handle); // Remove border and whatnot // SetWindowLong(appWin, GWL_STYLE, WS_VISIBLE); // Move the window to overlay it on this window

MoveWindow(appWin, 0, 0, this.Width, this.Height,

true); } private void

Form2_FormClosed(object sender, FormClosedEventArgs e) { try

{ process.Kill(); }

catch { } } private void Form2_Resize(object sender, EventArgs e) { if

(this.appWin != IntPtr.Zero)

{ MoveWindow(appWin, 0, 0, this.Width, this.Height, true); }

//base.OnResize(e); } }}

MFC中关闭窗口的几种办法

MFC中关闭窗口的几种办法+MFC中MessageBox的用法MFC中关闭窗口的几种办法: 退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE); 关闭当前窗口用DestroyWindow( ); 关闭模式对话框用EndDialog(0); MFC中MessageBox的用法 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1. MessageBox("这是一个最简单的消息框!"); 2. MessageBox("这是一个有标题的消息框!","标题"); 3. MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL ); 4. MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMA TION ); 5. MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMA TION|MB_OKCANCEL ); 6. if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL) return; 附其它常用属性 系统默认图标,可在消息框上显示 X错误MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR ?询问MB_ICONQUESTION !警告MB_ICONEXCLAMATION and MB_ICONW ARNING i信息MB_ICONASTERISK and MB_ICONINFORMA TION 按钮的形式 MB_OK 默认 MB_OKCANCEL 确定取消 MB_YESNO 是否 MB_YESNOCANCEL 是否取消 返回值 IDCANCEL 取消被选 IDNO 否被选 IDOK 确定被选 IDYES 是被选

C# WinForm自定义控件开发实例

C# WinForm自定义控件开发实例 最近做一个图象的采集,需要一个图形的选择控件,但是在.net下没有类似vb中的shape控件,所以考虑了自己写一个控件。下面我将从头创建控件,这个控件主要是用来选择图形的Rectangle,有一下几个属性Color BorderColor:边框颜色,Color BackColor:背景颜色,bool ReSizeble:是否可移动,Rectangle SelectRectangle:选择区域。 打开vs2003(我用的这个版本),新建一个c#控件库,ok,拷贝如下代码到你的代码里。using System;using System.Collections;using https://www.doczj.com/doc/208236418.html,ponentModel;using System.Drawing;using System.Data;using System.Windows.Forms;namespace WindowsExtendedControls{ /// /// 控件/// public class ShapeEx : System.Windows.Forms.Control { /// /// 必需的设计器变量。/// /// private Color _BorderColor=new Color(); private Color _BackColor=new Color(); private bool _ReSizeble; private Point _SelfLocation=new Point(); private Point _MouseLocation=new Point(); private int _SelfWidth; private int _SelfHeight; private int _SelectSelctedIndex;//0-8,0:SizeAll private Rectangle

窗体的关闭事件

窗体的关闭事件 对于关注对Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。 当Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发 1、System.Windows.Forms.Control.HandleCreated在为控件创建句柄时发生。 2、System.Windows.Forms.Control.BindingContextChanged 当BindingContext 属性的值更改时发生。注:每个Windows 窗体至少有一个BindingContext 对象,详见MSDN。 3、System.Windows.Forms.Form.Load 在第一次显示窗体前发生。 4、System.Windows.Forms.Control.VisibleChanged 在Visible 属性值更改时发生。注:如果通过编程修改或用户交互更改Visible 属性,则将引发此事件。 5、System.Windows.Forms.Form.Activated 当使用代码激活或用户激活窗体时发生。 6、System.Windows.Forms.Form.Shown 只有在首次显示窗体时才会引发Shown 事件;随后执行的最小化、最大化、还原、隐藏、显 示或无效化和重新绘制操作都不会引发该事件。 当应用程序关闭时,主窗体的关闭事件按以下顺序引发: 1、System.Windows.Forms.Form.Closing 在关闭窗体时发生。注意:在.NET Framework 版本 2.0 中,Closing 事件已过时,应改用 FormClosing 事件。 2、System.Windows.Forms.Form.FormClosing 在关闭窗体前发生,此时可以取消窗体的关闭。 3、System.Windows.Forms.Form.Closed 关闭窗体后发生。注意:在.NET Framework 版本 2.0 中,Closed 事件已过时,应改用 FormClosed 事件。 4、System.Windows.Forms.Form.FormClosed 关闭窗体后发生。 5、System.Windows.Forms.Form.Deactivate 当窗体失去焦点并不再是活动窗体时发生。 注意:当调用Application.Exit 方法以退出应用程序时,不引发Form.Closed 和Form.Closing 事件,但是会激发Form.FormClosed 和Form.FormClosing 事件。 FormClosing :在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的FormClosingEventArgs 的Cancel 属性设置为true。 FormClosed:在用户或Application 类的Close 方法或Exit 方法关闭窗体后,会发生FormClosed 事件。 若要防止窗体关闭,请处理FormClosing 事件,并将传递给事件处理程序的CancelEventArgs 的Cancel 属性设置为true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带X 的按钮)会隐藏窗体并将DialogResult 属性设置为DialogResult.Cancel。通过在窗体的FormClosing 事件的事件处理程序中设置DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给DialogResult 属性的值。 如果窗体是多文档界面(MDI) 父窗体,则在引发MDI 父窗体的FormClosing 事件之前将引发所有MDI 子窗体的FormClosing 事件。同样,在引发MDI 父窗体的FormClosed 事件之前,将引发所有MDI 子窗体的FormClosed 事件。取消MDI 子窗体的FormClosing 事件不能防止引发MDI 父窗体的FormClosing 事件。但是,取消该事件会将作为参数传递给父窗体的FormClosingEventArgs 类的Cancel 属性设置成false。要强制关闭所有MDI 父窗体和子窗体,请将MDI 父

C#编程Winform窗体结业考试笔试题目

课程“Accp6.0_S1.使用C#语言开发数据库应用系统”题库试题汇编 【001】DataSet是https://www.doczj.com/doc/208236418.html,中用于存储从数据库检索到的数据的对象,下列关于DataSet的说法错误的是()。 (选择一项) A) 在DataSet中可以包含多个DataTable B) DataSet可以简单的理解为一个临时数据库 C) 在与数据库断开连接后,DataSet中的数据会消失 D) DataSet实际上是从数据源中检索到的数据在内存中的缓存 【002】使用https://www.doczj.com/doc/208236418.html,访问数据库,某程序员编写如下几行代码,你觉得错误的应该是第()行。OleDbCommand oleCmd = new OleDbCommand();//1 OleDbConnection oleCon = new OleDbConnection("Server=SQLDB;DataBase=pubs;uid=sa;pwd=pwd"); oleCmd.Connection=oleCon;//2 oleCmd.Connection.Open(); https://www.doczj.com/doc/208236418.html,mandText="select * from authors"; https://www.doczj.com/doc/208236418.html,mandType=CommandType.StoredProcedure;//3 oleCmd.ExecuteScalar();//4 oleCmd.Connection.Close(); (选择一项) A) 1 B) 2 C) 3 D) 4 【003】https://www.doczj.com/doc/208236418.html,中的Command对象允许向数据库传递请求,以便检索和操作数据库中的对象,下列()方法不是Command对象的方法。 (选择一项) A) ExecuteNonQuery() B) Execute() C) ExecuteReader() D) ExecuteScalar() 【004】https://www.doczj.com/doc/208236418.html,中,DataReder对象用于从数据中检索只读数据,假设存在一个Command对象command,则使用以下()语句可以创建一个DataReader对象. (选择一项) A) SqlDataReader dtReader=command.ExecuteReader(); B) SqlDataReader dtReader=new SqlDataReader(command.ExectueReade); C) SqlDataReader dtReader=ExectueReader(); D) SqlDataReader dtReader=new SqlDataeader(); 【005】在https://www.doczj.com/doc/208236418.html,中,DataSet对象相当于一个临时的()(选一项) (选择一项) A) 数据表 B) 存储过程 C) 数据库

常用窗体控件

常用窗体控件: String str=””; Foreach(Control item in this.Controls) { If(https://www.doczj.com/doc/208236418.html,.IndexOf(“checkBox”)>0) { CheckBox ck=(CheckBox)Item; If(ck.Checked) { Str=ck.Text+”,”; } } }

高级窗体控件: 1.菜单控件MenuStrip 使用步骤: ①在Windows窗体中添加一个MenuStrip控件 ②单击该控件的Items属性,弹出“项集合编辑器”对话框 ③可以添加MenuItem子项。子项的子菜单 选择其“MenuItem”选项,单击其 DropDownItems属性,弹出相接对话框 ①选中要添加右键功能的Form或者控件,打开控件的设计页面 ②从工具箱中找到ContextMenuStrip控件,将这个控件拖曳到Form或者控件的设计页 面上。这时系统就会在这个页面下面自动创建一个contextMenuStrip1控件,如果你想在这个页面添加多个菜单,那么你也可以拖曳多个这种控件到设计页面上。 ③按照你的要求将这些ContextMenuStrip控件改成你需要的名称。然后, 选择需要右 键弹出菜单的页面,比如你当前编辑的页面中有一个DataGrid,一个T reeList,而你想分别为这两个控件添加不同的右键菜单。那么你就可以先选择DataGrid控件,然后在这个控件的属性中找到ContextMenuStrip属性,点击该属性,系统会自动查找你拖曳到当前页面的所有ContextMenuStrip控件并将这些控件罗列在这个属性的下拉菜单中。你可以选择一个你预先定义好的ContextMenuStrip控件。这样就为这个DataGrid控件设置了右键菜单。其他控件也使用同样的方法添加。 ④定义你的菜单,在为控件分配完菜单之后,你就可以定义单个的菜单。这时你可以 选中一个ContextMenu控件。系统会自动在编辑页面的上面现一个可编辑的动态菜

Excel VBA编程 窗体的事件

Excel VBA 编程 窗体的事件 事件是指在应用程序运行期间,在窗体(或其内的对象)上,由于用户的操作或系统内自身原因而产生的有效动作,例如单击鼠标(Click )、移动鼠标(MouseMove )等都是事件。 VBE 中的对象可识别的事件是预先确定的,并不是所有对象都会具有相同事件。但每个事件都有一个事件过程的框架与之对应,当某一事件发生时,系统将立即执行对应的事件过程,因此,如果想利用这个过程去完成指定的任务,那么用户就必须在这个对应的事件过程中编写程序代码,以便响应发生的事件,否则,即使发生了可识别的事件,系统也不会做任何操作。下面介绍用户窗体中的一些常用事件。 1.Initialize 事件 Initialize 事件用来提供应用程序或用户窗体中的控件、变量等进行初始化。该事件的作用,于类模块中的该事件相同。 2.QueryClose 事件 该事件发生在UserForm 关闭之前。通常用这个事件确保在关闭应用程序之前,应用程序包含的用户窗体中没有未完成的任务。该事件的语法格式如下: 格式:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 该事件括号内有两个参数。其中,参数Cancel 是一个整数的值,用于指定是否在所有加载的用户窗体中停止QueryClose 事件,当Cancel 的值设置为0以外的任意值时,QueryClose 事件将停止执行,并防止关闭UserForm 与应用程序;参数CloseMode 为一个值或常数,用来指示引起QueryClose 事件的原因。 CloseMode 参数返回下列的值,如表12-4所示。 表12.4 CloseMode 参数的返回值 3.Te rmina te 事 件 该事件用于删除窗体中对象事例的所有引用。Terminate 事件发生在卸载窗体对象之后。如果应用程序为非正常退出,从而导致在内存中删除UserForm 的示例,将不会触发Terminate 事件。例如,在从内存中删除UserForm 之前,应用程序调用了End 语句,则UserForm 不会触发Terminate 事件。 4.Activate 和Deactivate 事件 当运行中的对象变成活动窗口的时候就会发生Activate 事件。而当对象不再是活动窗口时,则会发生Deactivate 事件。下面的情况会引发这两种事件: 提 示 “常数”是执行程序时保持常数值的命名项目。常数可以是字符串、数值、另一常 数、任何(除乘幂与Is 之外的)算术运算符或逻辑运算符的组合。每个主应用程序皆可定义自己的一组常数。用户也可以使用Const 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。

C# WinForm窗体及其控件的自适应

C# WinForm窗体及其控件的自适应 C# WinForm窗体及其控件自适应各种屏幕分辨率 一。说明 我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。 在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化。为了多个窗体共用,我在这里创建一个类AutoSizeFormClass ,1.使用它去记录窗体和其控件的初始位置和大小,2.根据窗体变化了的大小,成比例地实现其控件的水平和垂直方向的变化,也就是自适应。 二。使用方法 使用方法很简单, 1.把自适应的类整体复制到你的工程命名空间里, 然后在需要自适应的窗体中做3步即可: 2.声明自适应类实例。 3.为窗体添加Load事件,并在其方法Form1_Load中,调用类的初始化方法,记录窗体和其控件初始位置和大小 4.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,调用类的自适应方法,完成自适应 三。完整代码如下: (一)。自适应窗体的代码: using System; using System.Collections.Generic;

using https://www.doczj.com/doc/208236418.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { //1.声明自适应类实例 AutoSizeFormClass asc = new AutoSizeFormClass(); public Form1() { InitializeComponent(); } //2. 为窗体添加Load事件,并在其方法Form1_Load中,调用类的初始化方法,记录窗体和其控件的初始位置和大小 private void Form1_Load(object sender, EventArgs e) { asc.controllInitializeSize(this); } //3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,调用类的自适应方法,完成自适应 private void Form1_SizeChanged(object sender, EventArgs e) { asc.controlAutoSize(this); } } }

窗体组件(TForm)的事件

窗体组件(TForm)的事件窗体组件最重要的一些事件主要是在窗体创建和关闭时产生的事件。在创建窗体时,将会依次发生下列事件:OnCreate;OnShow;OnActivate;OnPaint。 1.OnCreate事件 在创建窗体时会产生这一事件。主窗体的这一事件经常用于对程序作一些初始化,如分配内存、为一些变量设置初始值等。 2.OnShow事件 窗体显示时(即是窗体的V isible属性被设为True时)会产生这一事件。 3.OnActivate事件 当窗体变为活动窗体时,会产生这一事件。下面的代码表示当窗体Forml为活动窗体时,其标题(Caption)变为“活动窗体”: VOid fastcall TForml::FormActivate(TObject Sender) { Caption=”活动窗体”; ) 4.OnPaint事件 当窗体重画时发生这一事件,利用OnPaint事件加代码可以进行重画窗体时的特殊处理,例如在窗体尺寸变更时需要重画窗体,就会产生这一事件。 5.OnClick事件 当鼠标在窗体上单击的时候发生该事件。 6.OnClick事件 当鼠标在窗体上单击的时候发生该事件。 7.OnClose事件 当关闭窗体的时候发生该事件,利用在OnClose事件加代码可以进行关闭窗体时的特殊处理。该事件有一个TcloseAction类型的Action参数。 8.OnCloseQuery事件 用OnCloseQuery可以指定窗体关闭的条件。 9.OnDestroy事件

当窗体被删除时发生这一事件,利用在OnDestroy事件加代码可以进行删除窗体时的特殊处理。 10.OnHelp事件 当窗体收到请求帮助时发生这一事件。 11.OnHide事件 当窗体被隐藏时(窗体的V isible属性设置为False时)发生收到请求帮助时发生这一事件。 12.OnResize事件 当窗体改变大小的时候发生这一事件,利用在OnResize事件加代码可以进行改变窗体大小的时候做特殊处理。

winform窗体和控件自适应

有时winform窗体的大小会改变,此时窗体上的控件会很混乱,如何可以使控件自适应窗体呢?以 下就是方法: 1、首先在自己的命名空间里先建一个Autosize.cs类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace 自己的命名空间 { class Autosize { public void setTag(Control cons) { foreach (Control con in cons.Controls) { con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size; if (con.Controls.Count > 0) setTag(con); } } string[] mytag; public void setControls(float newx, float newy, Control cons) { foreach (Control con in cons.Controls) { if (con.Tag != null) { mytag = con.Tag.ToString().Split(new char[] { ':' }); float a = Convert.ToSingle(mytag[0]) * newx; con.Width = (int)a; a = Convert.ToSingle(mytag[1]) * newy; con.Height = (int)(a); a = Convert.ToSingle(mytag[2]) * newx; con.Left = (int)(a); a = Convert.ToSingle(mytag[3]) * newy; con.Top = (int)(a); Single currentSize = Convert.ToSingle(mytag[4]) * Math.Min(newx, newy); }

C#WinForm窗体事件执行次序(较完整版)

C#WinForm窗体事件执行次序(较完整版) 一、以下是网络上可搜索到的次序 当Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件: System.Windows.Forms.Control.HandleCreated System.Windows.Forms.Control.BindingContextChanged System.Windows.Forms.Form.Load System.Windows.Forms.Control.VisibleChanged System.Windows.Forms.Form.Activated System.Windows.Forms.Form.Shown 当应用程序关闭时,会以下列顺序引发主要表单的关闭事件: System.Windows.Forms.Form.Closing System.Windows.Forms.Form.FormClosing System.Windows.Forms.Form.Closed System.Windows.Forms.Form.FormClosed System.Windows.Forms.Form.Deactivate 二、以下是我测试的次序,全部protected override 这些事件,并且在其base.的前后分别处理一次,如下 view sourceprint? 1protected override void OnLoad(EventArgs e) 2{ 3 textBox1.Text += "OnLoad1"+ "\r\n"; 4 base.OnLoad(e); 5 textBox1.Text += "OnLoad2"+ "\r\n"; 6} OnClientSizeChanged1 OnClientSizeChanged2 OnClientSizeChanged1 OnClientSizeChanged2 // Loyout要多次执行 OnLayout1 OnLayout2 OnHanleCreated1 OnHanleCreated2 OnInvalidated1 OnInvalidated2 // 注意这里的一点点变化 OnCreateControl1

WinForm界面布局

WinForm界面布局 Dock&Anchor Dock和Anchor是水火不容的,同时给控件设置Dock和Anchor属性时后设置的会覆盖前面的设置。 Dock 我初接触WinForm的时候发现控件的Width和Height只能是int,不能设置为百分比,那个时候就想子控件如何跟着父控件而变化呢?父控件变大就变大,而且还填满那个区域。甚至以为这个需要通过代码来解决,如是在SizeChanged事件里…… 后来才发现我要的就是Dock给的,Dock是停靠的意思。Dock属性的类型是DockStyle枚举: 1:public enum DockStyle 2:{ 3:None=0, 4:Top=1, 5:Bottom=2, 6:Left=3, 7:Right=4, 8:Fill=5 9:} 默认是None,当为Left的时,就表示子控件停靠在父控件的左边区域,并把左区域填充满: 上图中的Panel总是会停靠在Form的左边区域,不管如何调整Form的高度,它总是能把左边区域填满。Dock麻烦的地方在于多个控件碰到一起时,比如有两个Panel都设置为Left 该怎么办?我们会发现向父控件的Controls集合中添加子控件,越晚添加具有更高的“优先级”(不知道有没有这个说法,这是我杜撰的)。这里的优先级指的是,子控件“优先级”越高,

越靠近父控件边缘,其他子控件就得避让: [我的见解;通过选中控件,一般是pannel,右键选择置为底层,来决定控件间的优先级] this.Controls.Add(this.panel1); this.Controls.Add(this.panel2); Panel2后添加进去,所以它具有更高的优先级,更靠近Form的边缘。这个规则不仅仅对于Dock都设为Left的有效,对Dock属性不同,但是碰到一起的子控件也适用: 1:this.panel1.Dock=DockStyle.Left; 2:this.panel2.Dock=DockStyle.Left; 3:this.panel3.Dock=DockStyle.Top; 4: 5:this.Controls.Add(this.panel1); 6:this.Controls.Add(this.panel2); 7:this.Controls.Add(this.panel3); panel3的Dock设置为Top,最后添加到Controls集合中,所以具有最高的优先级,其他两个panel都得避让:

窗体报表操作题答案

窗体报表操作题答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

第5章窗体 窗体1-5:2、4、10、16、71窗体6-10:2、3、18、32、35 窗体11-15:47、53、56、59、62窗体16-20:70、72、107、109、130 Access窗体操作题 代码中常用的属性:标题Caption;前景色foreColor;是否可用Enabled;记录源RecordSource 4、 (5)设置命令按钮bTest的单击事件属性为给定的宏对象m1; 本题直接选择事件,运行宏m1 如果要求写入运行宏的代码就为:“宏名称” 即:“m1” 35、 (5)设置所建命令按钮bC的单击事件,使用户单击该命令按钮后,CDID标签的显示颜色改为红色。要求用VBA代码实现。 属性设置为:对象名.属性名=值 窗体为:form.属性名=值如:=time()也可以:=time() 本题是将CDID文本框所带标签改变颜色:CDID_标签.forecolor=vbred或CDID_标 签.forecolor=rgb(255,0,0) 53、(1)将窗体"fEmp"上文本框"tSS"更改为组合框类型,保持控件名称不变。设置其相关属性实现下拉列表形式输入性别"男"和"女"; 选择文本框右键,选择更改为组合框,在属性窗口设置属性行来源:男;女(不要选择控件来源),行来源类型:值列表。 (2)修改查询对象"qEmp"为参数查询,参数为引用窗体对象"fEmp"上文本框"tSS"的输入值; 在查询qemp的设计视图下:添加性别字段,在条件行输入:[forms]![femp]![tss]。注意:性别不显示。 (3)设置窗体对象"fEmp"上文本框"tPa"为计算控件。要求依据"党员否"字段值显示内容:"党员否"字段值为True,显示"党员"两字;"党员否"字段值为False,显示"非党员"三字; =iif([党员否]=true,”党员”,”非党员”) (4)单击"刷新"按钮(名为"bt1"),事件过程动态设置窗体记录源为查询对象"qEmp",实现窗体数据按性别条件动态显示;单击"退出"按钮(名为"bt2"),关闭窗体。 =”qemp” 56、(5)在窗体中有一个"显示全部记录"命令按钮(名称为bList),单击该按钮后,应实现将"tStudent"表中的全部记录显示出来的功能。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 Select*fromtstudent可以参考这条语句上面的语句。 59、(5)在窗体中有一个"退出"命令按钮(名称为bQuit),单击该按钮后,应关闭"fStudent"窗体。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 62、(5)在窗体中还有"修改"和"保存"两个命令按钮,名称分别为"CmdEdit"和"CmdSave",其中"保存"命令按钮在初始状态为不可用,当单击"修改"按钮后,应使"保存"按钮变为可用。现已编写了部分VBA代码,请按照VBA代码中的指示将代码补充完整。 =true 70、(1)将窗体"fEmp"上文本框"tSS"更改为组合框类型,并保持控件名称不变;

Winform常用控件

1.数据显示:DataGridView(DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以自定义单元格、行、列和边框)。 文本编辑:TextBox(显示设计时输入的文本,它可由用户在运行时编辑或以编程方式更改)。 RichTextBox(使文本能够以纯文本或 RTF 格式显示)。MaskedTextBox(约束用户输入的格式)。 2.信息显示:Label(显示用户无法直接编辑的文本)。LinkLabel(将文本显示为 Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接)。 StatusStrip(通常在父窗体的底部使用有框架的区域显示有关应用程序的当前状态的信息)。ProgressBar(向用户显示操作的当前进度)。 3.从列表中选择:CheckedListBox(显示一个可滚动的项列表,每项旁边都有一个复选框)。 ComboBox(显示一个下拉式项列表)。DomainUpDown(显示用户可用向上和向下按钮滚动的文本项列表)。ListBox(显示一个文本项和图形项(图标)列表)。ListView(在四个不同视图之一中显示项。这些视图包括纯文本视图、带有小图标的文本视图、带有大图标的文本视图和详细信息视图)。NumericUpDown(显示用户可用向上和向下按钮滚动的数字列表)。TreeView (显示一个节点对象的分层集合,这些节点对象由带有可选复选框或图标的文本组成)。 4.图形显示:PictureBox(在一个框架中显示图形文件(如位图和图标)。 5.图形存储:ImageList(充当图像储存库。ImageList 控件和及其包含的图像可以在不同的应用程序中重用)。 6.值的设置:CheckBox(显示一个复选框和一个文本标签。通常用来设置选项)。CheckedListBox(显示一个可滚动的项列表,每项旁边都有一个复选框)。RadioButton(显示一个可打开或关闭的按钮)。TrackBar(允许用户通过沿标尺移动“滚动块”来设置标尺上的值)。 7.数据的设置:DateTimePicker(显示一个图形日历以允许用户选择日期或时间)。MonthCalendar(显示一个图形日历以允许用户选择日期范围)。 8.对话框:ColorDialog(显示允许用户设置界面元素的颜色的颜色选择器对话框) ColorDialog 显示允许用户设置界面元素的颜色的颜色选择器对话框。 FontDialog 显示允许用户设置字体及其属性的对话框。 OpenFileDialog 显示允许用户定位文件和选择文件的对话框。 PrintDialog 显示允许用户选择打印机并设置其属性的对话框。 PrintPreviewDialog 显示一个对话框,该对话框显示 PrintDocument 组件在打印出来后的外观。 FolderBrowserDialog 显示用来浏览、创建以及最终选择文件夹的对话框SaveFileDialog 显示允许用户保存文件的对话框。 9.菜单控件: MenuStrip 创建自定义菜单 ContextMenuStrip Bitmap 创建自定义上下文菜单。 10.命令: Button Bitmap 启动、停止或中断进程。 LinkLabel 将文本显示为 Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接。 NotifyIcon 在表示正在后台运行的应用程序的任务栏的状态通知区域中显示一个图标。

C#制作WinForm用户自定义控件实例教程

C#制作WinForm用户自定义控件实例教程 本文将教大家如何使用C#开发WinForm用户自定义控件,自定义控件有好多好处,下面请跟本文一同来学习下吧。 .Nt用户自定义控件继承UserControl类,设计很简单的,像平时在窗体上拖控件一样。 操作步骤: 1. 建立一个工程,添加用户控件。 2.在打开的窗体内输入控件名称,如:"ucButton",按确定按钮。接下来在空白区域拖放3个.Net控件。 如下图:

3.代码 C# code ///

/// C#.Net 设计用户自定义控件 /// /// [ToolboxBitmap(typeof(CustomControl.ucButton), "ucButton.bmp")] public partial class ucButton : UserControl { private bool _IsFocused = false; //标记按钮是否为焦点状态 public ucButton() { InitializeComponent(); this.DoHideFocusedTag(); this.MyCatpionText = https://www.doczj.com/doc/208236418.html,; } private EventHandler _OnButtonClick = null; private string _MyCatpionText = "ucButton1"; /// /// 按钮标题 /// [EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)] [DefaultValue("ucButton1")] public string MyCatpionText { get { return _MyCatpionText; } set { _MyCatpionText = value; lblCaption.Text = _MyCatpionText; } } /// /// 用户自定义Click事件 /// [EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)] public event EventHandler OnButtonClick { add { _OnButtonClick = new EventHandler(value); } remove { _OnButtonClick -= new EventHandler(value); } } private void lblCaption_Click(object sender, EventArgs e) { //转移Click事件, 触发用户自定义事件 if (_OnButtonClick != null) _OnButtonClick(this, e); } private void lblCaption_MouseDown(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily, lblCaption.Font.Size, FontStyle.Bold); } } private void lblCaption_MouseUp(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily, lblCaption.Font.Size, FontStyle.Regular); } } private void ucButton_SizeChanged(object sender, EventArgs e) { lblUnderLine.Top = this.Height - 1; lblUnderLine.Width = this.Width - 15; } /// /// 还原按钮状态 /// public void DoHideFocusedTag() { this.pictureBox1.Image = global::vjsdn.CustomControl.Properties.Resources.GrayTag; this.lblUnderLine.Visible = false; lblCaption.ForeColor = Color.Black; } /// /// 设计按钮为焦点状态 /// public void DoShowFocusedTag() { this.pictureBox1.Image =

VB常用的窗体事件

常用窗体事件 (1)Click 事件 在程序运行时单击窗体内的某个位置,Visual Basic将调用窗体的Form_Click 事件。如果单击的是窗体内的控件,则只能调用相应控件的Click事件。Click 事件:标题栏显示“鼠标单击”,窗体显示"欢迎使用VB" Private Sub Form_Click() Caption = "鼠标单击" Print "欢迎使用VB" End Sub (2)DblClick 事件 程序运行时双击窗体内的某个位置,就触发了两个事件,第一次按动鼠标时,触发Click事件,第二次产生DblClick事件。DblClick 事件:标题栏显示“双击窗体” ,清除背景图。 Private Sub Form_DblClick() Caption = "鼠标双击" Picture = LoadPicture("") Print "结束使用VB" End Sub (3) Initialize初始化事件与 Load事件 在程序运行时,当窗体被装入工作区时开始为Initialize之后才触发它的Load 事件。所以该事件通常用来在启动应用程序时,对控件属性和变量初始化Private Sub Form_Load() Caption = "装入窗体" Picture = LoadPicture ( App.Path + "\window.jpg") FontSize = 48 FontName = "隶书" Print "装入窗体" End Sub (4) Unload事件 Private Sub Form_Unload(cancel As Integer) 卸载窗体时触发该事件。 (5) Resize事件 Private Sub Form_Resize() 当窗体大小发生改变时,将触发一个Resize事件。 (6)Activate事件(活动事件)& Deactivate事件(非活动事件) Activate 当一个对象成为活动窗口时发生。 Private Sub object_Activate()

C#给Winform的button等控件添加快捷键三种方法

C# 给Winform 的button 等控件添加快捷键三种方法 第一种:Alt + *(按钮快捷键) 在大家给button 、label 、menuStrip 等控件设置Text 属性时在名字后边加& 键名就可以了, 比如button1.text= "确定(&O)" 。就会有快捷键了,这时候按Alt+O 就可以执行按钮单击事件。 第二种:Ctrl+* 及其他组合键 在WinForm 中设置要使用组合键的窗体的KeyPreview( 向 窗体注册键盘事件)属性为True; 然后使用窗体的KeyDown 事件(在首次按下某个键时发生). 实例代码: private void ***_KeyDown(object sender, KeyEventArgs e) {

if (e.KeyCode == Keys.F && e.Control) button1.PerformClick(); // 执行单击button1 的动作 注:1、***代表窗体名称,大家可以看一下” Keys ”的枚举参数,以实现自己需要 2、还有一个问题,当使用Ctrl + * 快捷键时,对于焦点在可 写的控件(如TextBox )上时,可能会将* 键值同时输入,则需要加另一句话将Handled 设置为true , 以取消KeyPress 事件。 即: private void ***_KeyDown(object sender, KeyEventArgs e) {

if (e.KeyCode == Keys.F && e.Control) e.Handled = true; //将Handled 设置为true ,指示已经处理过KeyPress 事件button1.PerformClick(); 第三种: 还是以button 为例。给form 添加一个contextMenuStrip1 将其邦定到button 上,假设为button1 。给 contextMenuStrip1 添加一个item ,然后为它设置快捷键(就是你想加在button 上的快捷键),并且将它的Visible 属性设 false 。这样,button1 的快捷键设置成功。

相关主题
文本预览
相关文档 最新文档