Dotnet WinForm 建立 FAQ (1)

c# 仿Foxmail换肤功能源码 仿Foxmail换肤功能源码 c#换肤 c#皮肤 c#自定义皮肤 立即下载
1.     如何设置一个From的边界

Form总共有七种不同的边界风格让你设置,你可以在设计时刻也可以运行时通过代
码动态的来设置它.这七种边界风格分别是:

None (System.Windows.Forms.FormBorderStyle.None )


Fixed 3D (System.Windows.Forms.FormBorderStyle.Fixed3D)

Fixed Dialog (System.Windows.Forms.FormBorderStyle.FixedDialog)

Fixed Single(System.Windows.Forms.FormBorderStyle.FixedSingle)

Fixed Tool Window(System.Windows.Forms.FormBorderStyle.
FixedToolWindow)

Sizable(System.Windows.Forms.FormBorderStyle.Sizable)

Sizable  Tool Window

(System.Windows.Forms.FormBorderStyle.SizableToolWindow)

在设计方式下在VS.NET IDE的 Properties window中设置FormBorderStyle属性就
可以了.

在运行方式下你可以用代码来完成:

DlgBx1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.
FixedDialog
这七种边界类型VB6中就有,没有什么大的变化,运行方式下你需要对照不同的枚举
变量进行设置.



2.     如何建立一个透明的From

你可以通过两种方法在设计时刻和运行时刻来做到这一点.

设计时刻,你可以在VS.NET IDE的 Properties window, 设置Opacity 属性达到这
个效果.这个值从0.0到1.0 . 0表示完全透明,1.0表示完全不透明.

运行时刻你可以用下面的编码设置窗体的Opactiy属性来做到.具体:

frmTransparentForm.Opacity = 0.76; ( C# )

看得出现在很简单了,你已经不用再去了解什么Alpha变量了.透明始终只是一种效
果,不要滥用它.



3.     如何设置窗体在屏幕中的位置

你可以设置窗体的StartPosition属性,VS.NET一般给你一个保守的选项”
WindowsDefaultLocation“ 这样系统在Load窗体时将根据用户当前的计算机设置
来确定一个值,你也可以在设计时将它改成另一个值”Center”.

如果你一定要在设计方式下确定窗体在屏幕出现的位置你可以先设置
StartPosition为Manual,然后设置Location的X和Y的值.

运行时用代码实现似乎更简洁一些:

  Form1.Location = new Point (100, 100) ( VB.NET )
当然你也可以分别修改的Location的X和Y值,对应的是窗体的Left和Top属性,比如
:

Form1.Left += 200 ( VB.NET )

Form1.Top -= 100 ( VB.NET )

另外一个属性将也将影响窗体在屏幕的位置:DesktopLocation 这个属性主要是在
你设置窗体的位置相对于任务栏时非常实用(当你把任务条放在屏幕的顶或左边时
,其实相应改动了desktop coordinates (0,0)),你可以这样设置这个不出现在设计
属性窗口中的属性,

Form1.DesktopLocation = new Point (100,100)

窗体在屏幕中的位置将主要取决于各自用户具体的硬件和设置情况,所以保守的作
法是用默认的” WindowsDefaultLocation”或 ”Center”;专业的作法是自己先
获取系统的设置然后编码动态计算后进行设置,不然很容易在屏幕上找不到你的窗
体.



4.     如何使最小化和最大化按钮不可用

在设置窗体的Form.MinimizeBox和Form.MaximizeBox 当为True时表示显示,False
时表示不可.用编程方式见下:

frmMaxMin.MinnimizeBox = False ( VB.NET)

frmMaxMin.MaxmnimizeBox = True  ( VB.NET )



5.     如何使一个窗体不见

我想最直接的办法是你调用 Hide()方法来做到这一点.不过我想提供另一种方法,
看了之后你会获得一些其它的启发. ( VB.NET )

    Private Const WS_EX_TOOLWINDOW As Int32 = &H80

    Private Const WS_POPUP As Int32 = &H80000000

    Private Const WS_VISIBLE As Int32 = &H10000000

    Private Const WS_SYSMENU As Int32 = &H80000

    Private Const WS_MAXIMIZEBOX As Int32 = &H10000



    Protected Overrides ReadOnly Property CreateParams() As System.
Windows.Forms.CreateParams

        Get

            Dim cp As System.Windows.Forms.CreateParams

            cp = MyBase.CreateParams

            cp.ExStyle = WS_EX_TOOLWINDOW

            cp.Style = WS_POPUP Or WS_VISIBLE Or WS_SYSMENU Or
WS_MAXIMIZEBOX

            cp.Height = 0

            cp.Width = 0

            Return cp

        End Get

    End Property

    原来是把Height 和Width都设置成0 ,我想这种方式和Hide()调用的底层可能
是不同的。



6.     如何设置使窗体成为非矩形的.

这个问题我想我提供的不是最专业的作法,至少它还不能达到我期望的那样,也就是
说它在某些事件中它还会变回矩形.但至少我可以告诉你:如果试图调用原来的
Win32’s API SetWindowRng是不行的,我曾如此的尝试过.现在你可能需要知道有
关窗体的Region属性

     ' // ( VB.NET )

    Public Sub SetWindowRegion()



        Dim FormPath As System.Drawing.Drawing2D.GraphicsPath

        Dim Reg As Drawing.Region

        Dim lRet As Long



        FormPath = New Drawing2D.GraphicsPath()

        FormPath.AddEllipse(New Rectangle(0, 0, 250, 120))



        Me.Region = New Region(FormPath)



    End Sub



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click

        Me.Region = Nothing

        SetWindowRegion()

    End Sub



    Protected Overrides Sub OnResize(ByVal e As System.EventArgs)

          Me.Region = Nothing

          SetWindowRegion()

    End Sub



7.     如何使一个窗体在屏幕的最顶端.

这是很实用的一个功能,现在你不用在调用其它API了,只用设置TopMost 属性为
True就可以了.对于这个属性在设计时刻和运行时刻都是可以进行修改的.代码方式
:

         myTopForm.TopMost = True ( VB.NET)


8.     如何显示一个Model和非Model的窗体

Model和Modeless的窗体主要将取决于你的应用,最多的是用在显示对话框.当你需
要Model的窗体时你调用MyForm. ShowDialog而非Model的调用MyForm.Show,对于
ShowDialog有一个可选参数ower可以让你为一个窗体建立父子关系.比如:

' Visual Basic
Private Sub mnuAbout_Click(…args…)
   Dim f As New FormOption
   f.ShowDialog Me
End Sub
有一点需要注意的是对于ShowDialog来说,当执行到这一句,窗体显示,但这之后的
代码将不会执行,只到窗口关闭之后才继续执行,而对于Show来说是即时的,显示窗
体之后将立即执行下面的代码.

9.     如何制作一个MDI的窗体

1.     建立一个新的Windows Application项目

2.     分别加入两个窗体Form1 、Form2

3.     设置Form1的IsMdiContainer属性为True。使它成为MDI主窗体。

4.     在Form2中加入一个RichTextBox控件,并设置Dock为:Fill

5.     在Tools 窗体中拖一个MainMenu到窗体Form1,然后建立一个菜单
File|Windows|Help三个菜单项,File中包括New、Exit菜单项;Windows中包括
Cascade、Horizontal等。

6.     设置Windows菜单项的MdiList属性=True, 这样每一个MDI子窗口将自动
加在Windows菜单项下面。

7.     双击New菜单项,然后加入以下代码:

     private void menuNew_Click(object sender, System.EventArgs e)

     {

         Form2  NewMdiChild ;

         NewMdiChild = new Form2() ;

         NewMdiChild.MdiParent = this ;

         NewMdiChild.Show() ;



     }

8.     在Windows的Cascade等菜单项中加入以下代码:

     private void menuWindowCasca_Click(object sender, System.
EventArgs e)

     {

         this.LayoutMdi( MdiLayout.Cascade) ;



     }

另外还有以下常用的:

this.LayoutMdi(MdiLayout.TileHorizontal);

this.LayoutMdi(MdiLayout.TileVertical);

9.     F5运行。

最终版的VS.NET 不知是否会有一个通用的模板,不过用完全手工的方式产生一个
MDI的窗口,显得有些繁琐,不如VS.NET的IDE方式下那么简洁。
六、Tool 工具系统:让大模型拥有“手脚“ 我问你一个问题:大模型能不能告诉你"北京今天天气怎么样"?能——它能用非常流畅的中文回答你不能——它不知道这个答案因为它没有联网能力,也没有实时数据。它可能会自信地编一个"今天晴,25 度"给你——这就是幻觉。问题出在哪?大模型是一个"推理引擎",不是一个"执行引擎"。它知道天气 API 怎么调用,但不能真的发出 HTTP 请求。它知道 Python 代码怎么写,但不能真的运行代码。它知道数学公式,但做不了精确的大数计算。Tool 工具系统解决的,就是这个"最后一公里"问题。 阅读详情

相关推荐

STM32F103移植NuttX实战:从零搭建最小系统到串口Shell(附完整配置文件)

本文详细介绍了在STM32F103C8T6开发板上移植NuttX实时操作系统的完整过程,包括环境搭建、BSP配置、系统时钟初始化、驱动裁剪、编译烧录及串口Shell交互。通过实战指南帮助开发者快速掌握NuttX移植技巧,解决典型问题,适用于嵌入式系统开发。

tree8的博客 293

.net core WinFrom桌面应用程序 初体验

1..net Core 创建WinFrom桌面应用程序 前提是安装好.netCore开发环境,以及最新的.netCore3.0以上 使用命令创建,打开CMD,输入:dotnet new winform -o TestWFCore 上述代码会创建一个名为TestWFCore的新项目。该项目位于c:\ Users(YourAccount)下 然后把这个项目拷贝出来,放到自己想放的目录下就行...

2万+

VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误)

本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。

weixin_29011395的博客 549

.NET WinForms 入门指南:从零开始构建桌面应用

Windows Forms(简称WinForms)是.NET平台下成熟的桌面应用程序开发框架,它提供了丰富的控件库和可视化设计能力,让开发者能够快速构建功能完善的Windows桌面应用。本文将带你全面了解如何开始使用.NET WinForms进行开发。 ## 环境准备 ### 安装.NET SDK 要开始WinForms开发,首先需要安装.NET SDK。推荐选择以下版本之一: 1. **...

gitblog_00007的博客 693

告别调参烦恼:用Simulink手把手实现自适应模糊PID温度控制(附模型下载)

本文详细介绍了如何使用Simulink实现自适应模糊PID温度控制,解决传统PID调参难题。通过模糊推理引擎动态调整PID参数,系统能自动适应不同工况,显著提升控制精度和响应速度。文章包含完整的建模步骤、参数优化技巧和工业应用扩展,并附赠可下载模型,帮助工程师快速掌握这一智能控制技术。

weixin_30872499的博客 153

ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟的关键技术解析

本文深入解析了ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟中的关键技术。通过详细介绍CDP模型的核心价值、建模关键技术、滞回曲线优化方法及典型问题排查指南,帮助工程师精准模拟混凝土的拉伸开裂和压缩压碎行为,提升抗震分析效率。文章还提供了实用的工程应用技巧,如快速建模模板和后处理自动化脚本。

weixin_30555125的博客 525

.Net Core3.0已全面支持跨平台的Windows桌面开发:WinForm、WPF,你还在等什么?

At Microsoft Build Live today, we are sharing a first look at our plans for .NET Core 3. The highlight of .NET Core 3 is support for Windows desktop applications, specifically Windows Forms, Windows P...

qq_42152842的博客 5万+

第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅

发光二极管(Light Emitting Diode,简称LED)是一种能够将电能转化为光能的固态的半导体器件。长脚为阳极短脚为阴极电流必须从长脚流入从短脚流出方可点亮LED##杜邦线杜邦线:是导线中的一种,杜邦线端部有两种接头形式:带针的一种称为公头,带孔的一种称为母头,如下图所示:说明:与电源相连接时,一般采用红色杜邦线,与地连接时采用黑色杜邦线。

qwsbcjendb的博客 1130

DotNET WinForm 16个基本知识点(下)

9.     如何制作一个MDI的窗体1.     建立一个新的Windows Application项目2.     分别加入两个窗体Form1 、Form23.     设置Form1的IsMdiContainer属性为True。使它成为MDI主窗体。4.     在Form2中加入一个RichTextBox控件,并设置Dock为:Fill5.     在Tools 窗体中

.NET 开发学习之旅 1088

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

什么时候勾选Bake into pose,当不希望动画带动游戏对象旋转时。在旋转的动画中一般是不用勾选的,因为就需要用它来带动我们的角色对象旋转。但在比如前进、后退、待机等动画来说,我们就可以勾选这里,以避免因动画文件本身的瑕疵而给我们带来的旋转。loop match:代表了这个动画在角度上的吻合度。如果这个动画在播放中转角过大,那么就会显示红色,告诉我们如果勾选bake into pose,则会带来不好的效果。

weixin_60154963的博客 6805

基于YOLOv11的手术器械计数系统:从数据集构建到Web应用部署

m2cai16-tool数据集:包含15种腹腔镜手术器械的标注图像Cholec80数据集:包含80个胆囊切除手术视频,标注了7种器械SurgicalTools数据集:包含超过10,000张手术器械图像,涵盖21类常见器械手术剪(Scissors)止血钳(Hemostat)持针器(Needle Holder)手术刀(Scalpel)镊子(Forceps)拉钩(Retractor)吸引器(Suction)

YOLO 397

DotNET WinForm FAQ 16个(上)

Dotnet WinForm 建立 FAQ 小气的神 2001.08.31 如何建立你的第一个窗体,希望下面的说明可以成为你快速开始的一个指引. 1.     如何设置一个From的边界2.     如何建立一个透明的From3.     如何设置窗体在屏幕中的位置4.     如何使最小化和最大化按钮不可用5.     如何使一个窗体不见6.    

ccBoy的专栏 1585

【WRF工具】WRF Domain Wizard第一期:软件下载及安装

【WRF工具介绍】WRF Domain Wizard-确定模拟区域

WW、forever的博客 2918

DotNET WinForm FAQ 16个

http://www.sudu.cn/info/html/edu/20071226/30403.html   dotnet winform 建立 faq 小气的神 2001.08.31 如何建立你的第一个窗体,希望下面的说明可以成为你快速开始的一个指引. 1. 如何设置一个from的边界 2. 如何建立一个透明的from 3. 如何设

个人学习记录 1623

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Dotnet WinForm 建立 FAQ (2)

10.?????如何将你的窗体不显示在任务条上.当窗体的边界风格是Tools?Window时它都不会出现在任务条上的.另外上面标题5中介绍的方法不仅窗体看不见,也不会出现在任务条上.????如果你现在在Dotnet的世界,这件事也变的简单,任何的Winform窗体现在都有ShowInTaskbar属性,所以你只要简单的设置这个属性就可以了。同样你可以选择在属性窗口中将ShowInTaskbar由T

Foxmail★Blog 1569

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DotNET WinForm FAQ 16个(下)

 9.     如何制作一个MDI的窗体1.     建立一个新的Windows Application项目2.     分别加入两个窗体Form1 、Form23.     设置Form1的IsMdiContainer属性为True。使它成为MDI主窗体。4.     在Form2中加入一个RichTextBox控件,并设置Dock为:Fill5.     在Tools

ccBoy的专栏 1352

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

DotNET WinForm FAQ 16个 (转)

另外一个属性将也将影响窗体在屏幕的位置:DesktopLocation 这个属性主要是在你设置窗体的位置相对于任务栏时非常实用(当你把任务条放在屏幕的顶或左边时,其实相应改动了desktop coordinates (0,0)),你可以这样设置这个不出现在设计属性窗口中的属性,无论是C#还是Visual Basic的Winform项目中你都可以在Solution Explorer窗口中右键你的Project,然后选择属性,从你Project的属性页中选择你启动的窗体或是Main()方法。

biyusr的专栏 629

DotNet 网上资源

相关网站列表http://blog.joycode.com/ 博客堂 主要是微软专家的帖子,内容较新http://www.cnblogs.com/ 博客园http://www.microsoft.com/resources/practices/default.mspx 模式和实践首页http://msdn.microsoft.com/smartclient/ 智能客户端首页http://msdn.

Hacken的专栏 1万+

DotNET WinForm FAQ 16

author:作者 冰戈--真诚的平凡   目录 1.     如何设置一个From的边界  2.     如何建立一个透明的From3.     如何设置窗体在屏幕中的位置4.     如何使最小化和最大化按钮不可用5.     如何使一个窗体不见6.     如何设置使窗体成为非矩形的.7.     如何使一个窗体在屏幕的最顶端.8.     如何显示一个Mod

王军辉的专栏 738
上一篇: 2004-8-11
下一篇: Dotnet WinForm 建立 FAQ (2)
foxmail
博客等级 码龄25年 11粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值