c# 窗体学习

本文介绍了在Windows项目中引用另一个项目的窗体方法,包括如何修改AboutBox组件、设置窗体大小、显示位置、透明度、颜色等常规属性,以及如何在项目中应用颜色对话框、文件夹浏览器对话框、字体对话框等功能。此外,还详细解释了如何禁用关闭窗体、处理事件、对话框的使用方法,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.如何在一个项目中引用另一个项目中的窗体

例如有一个项目A,一个项目B,想在A中引用B的窗体。

网上的一种解决方法:

给A项目添加引用B,然后在A项目中使用using B;

在A中就可以

B.Form1 frm = new B.Form1();

2.AboutBox

添加AboutBox修改之后,发现它显示的不是所修改后的,一种方法可以到Project->ProjectName Properties->Assembly Information来修改,另一种方法:

 

partial class AboutBox1 : Form
{
    public AboutBox1()
    {
        InitializeComponent();
        this.Text = String.Format("About {0} {0}", AssemblyTitle);
        this.labelProductName.Text = AssemblyProduct;
        this.labelVersion.Text = String.Format("Version {0} {0}", AssemblyVersion);
        this.labelCopyright.Text = AssemblyCopyright;
        this.labelCompanyName.Text = AssemblyCompany;
        this.textBoxDescription.Text = AssemblyDescription;
    }
}


把InitializeComponent();后面的代码删掉

 

 

partial class AboutBox1 : Form
{
    public AboutBox1()
    {
        InitializeComponent();
    }
}

 

 

3.常规窗体设置

 

 

1.控制窗体大小

固定窗体大小需要设置窗体的两个属性:Maximumsize和Minimumsize。

示例代码:

 

this.MaximumSize = new Size(400,400);//窗体最大值为400x400
this.MinmumSize = new Size(300,300);//窗体最小值为300x300

 

 

 

2.最前端显示窗体

TopMost属性指示窗体是否始终显示在此属性未设置为True的所有其他窗体上,如果同时有几个窗体都设置了TopMost为true,此时最前端的窗体由活动窗体决定。

3.设置窗体相对起始位置

Location属性值指定窗体在计算机屏幕上的显示位置,以像素为单位指定窗体左上角的位置,StarPosition属性指示显示区域的边界。只有在StarPosition设为Manual时,Location属性才起作用。

4.设置窗体透明度

Opacity属性来设置窗体的透明度,也影响所包含的控件的透明度。1.0是不透明,0.0是完全透明。

5.设置窗体颜色

BackColor属性的值来设置窗体的颜色,不仅可以使用Color类枚举值,也可以使用Color.FromArgb()方法,控件也可以使用这个属性。

6.owner和parent

每一个可视控件都有所有者和Parent属性,所有者是指控件创建时指定的所属对象,Parent属性表示控件的父对象,可以判断控件是否在该窗体中,通过Form.Controls.Add()为窗体添加控件,通过Form.Controls.Remove()从窗体中移除控件。

7.右对齐窗体标题文字

RightToLeft=true,将窗体的RightToLeftLayout设置为true,可以将窗体的图标实现右对齐。

8.禁止关闭窗体

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}

 

窗口正要关闭但是还没有关闭之前会触发FormClosing事件,该事件中的参数FormClosingEventArgs e中包含Cancel属性,如果设置为true,窗口将不会被关闭。

 

9.窗体无法接受Keydown事件

如果要处理的事件窗体和窗体其上的控件(获取焦点的)都同时拥有,系统就会将键盘的操作直接传递给这个控件,此时可以将窗体的KeyPriew属性设置为true,令先传递给窗体,再传递给控件。但是方向键默认的作用是移动焦点,所以系统不会向窗体发送它们的KeyDown事件,只有在没有可移动焦点时,才触发KeyDown事件。

参考:http://blog.youkuaiyun.com/genganpeng/article/details/8649191

10.去掉窗体的最大化、最小化叉叉

属性:MinimizeBox = false;MaximizeBox = false;

4.对话框的应用

1.ColorDialog

ColorDialog.Color属性获取或设置用户选定的颜色

2.FolderBrowserDialog

可以浏览并选择文件夹,SelectedPath属性为选择的文件夹,默认为空字符

 

if(folderBrowseDialog1.ShowDialog()==DialogResult.OK)
{
 this.label1.Text = folderBrowerDialog1.SelectedPath;
}

 

3.FontDialog

Font属性获取或设置选定的字体

Color属性获取或设置字体的颜色

4.OpenFileDialog

 

openFileDialog1.InitialDirectory = "c:\\"; //文件对话框显示的初始目录
openFileDialog1.Filter = "文本文件(*.txt)|*.txt|All files(*.*)|*.*";// 设置过虑条件
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
label1.Text = openFileDialg1.FileName;
}

 

初始相对路径设置方法:

 

string path=Application.StartupPath + @"../../../";
System.IO.Directory.SetCurrentDirectory(path);
string a=System.IO.Directory.GetCurrentDirectory();

 

 

 

使用Multiselect属性使用户可以打开多个文件,ShowReadOnly属性确定在对话框中是否出现只读复选框。

 

 

5.SaveFileDialog

 

saveFileDialog1.Filter = "txt files(*.txt)|*.txt|All files(*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
{
}

对于SaveFileDialog的Save操作及OpenFileDialog的Open操作,那么操作的初始目录会是Environment.CurrenctDirectory。如果设置FileDialog.RestoreDirectory=true,那么关对话框后,刚才操作的目录就会保存,下次再打开对话框时,初始的目录就会是上次保存的目录。对于win7始终是true,无法改变。

5.事件处理

1.Application.DoEvents

参考MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.doevents%28v=vs.110%29.aspx

基本意思是在处理在处理一个事件的同时,允许同时处理Application收到的其他事件。

Application类提供静态方法和属性以管理应用程序。

Computer类提供了用于操作计算机组的属性。

ComputerInfo类提供了获取与计算机的内存、已加载程序集、名称和操作系统有关信息的属性。

Environment类提供当前环境和平台的信息。

 

 

最后欢迎大家访问我的个人网站: 1024s

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值