??xml version="1.0" encoding="utf-8" standalone="yes"?>
2. 如何建立一个透明的From
3. 如何讄H体在屏q中的位|?/p>
4. 如何使最化和最大化按钮不可?/p>
5. 如何使一个窗体不?/p>
6. 如何讄使窗体成为非矩Ş?
7. 如何使一个窗体在屏幕的最端.
8. 如何昄一个Model和非Model的窗?/p>
9. 如何制作一个MDI的窗?/p>
10. 如何你的窗体不昄在Q务条?
11. 如何制作一个带启动屏幕的窗?
12. 如何使你的窗体TrayIcon.
13. 如何修改控制H体的尺寸和长宽寸.
14. 如何建立一个Windows Explorer风格的窗?
15. 如何讄初始的启动窗?/p>
16. 如何建立一个有背景囑փ的窗?
==========================================================================================
1. 如何讄一个From的边?/p>
formd有七U不同的边界风格让你讄,你可以在设计时刻也可以运行时通过代码动态的来设|它.q七U边界风格分别是:
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
q七U边界类型VB6中就?没有什么大的变?q行方式下你需要对照不同的枚D变量q行讄.
2. 如何建立一个透明的From
你可以通过两种Ҏ在设计时dq行时刻来做到这一?
设计时刻,你可以在vs.net IDE?Properties window, 讄Opacity 属性达到这个效?q个g0.0?.0 . 0表示完全透明,1.0表示完全不透明.
q行时刻你可以用下面的编码设|窗体的opactiy属性来做到.具体:
frmtransparentform.opacity = 0.76; ( C# )
看得出现在很单了,你已l不用再M解什么alpha变量?透明始终只是一U效?不要滥用?
3. 如何讄H体在屏q中的位|?/p>
你可以设|窗体的startposition属?vs.net一般给你一个保守的选项?WindowsDefaultLocation?q样pȝ在LoadH体时将Ҏ用户当前的计机讄来确定一个?你也可以在设计时它Ҏ另一个值”Center?
如果你一定要在设计方式下定H体在屏q出现的位置你可以先讄startposition为manual,然后讄location的x和y的?
q行时用代码实现g更简z一?
Form1.Location = new Point (100, 100) ( VB.NET )
当然你也可以分别修改的Location的X和Y?对应的是H体的Left和Top属?比如:
form1.left += 200 ( VB.NET )
form1.top -= 100 ( VB.NET )
另外一个属性将也将影响H体在屏q的位置:desktoplocation q个属性主要是在你讄H体的位|相对于d栏时非常实用(当你把Q务条攑֜屏幕的顶或左Ҏ,其实相应改动了desktop coordinates (0,0)),你可以这栯|这个不出现在设计属性窗口中的属?
form1.desktoplocation = new Point (100,100)
H体在屏q中的位|将主要取决于各自用户具体的g和设|情?所以保守的作法是用默认的?WindowsDefaultLocation”或 ”Center?专业的作法是自己先获取系l的讄然后~码动态计后q行讄,不然很容易在屏幕上找不到你的H体.
4. 如何使最化和最大化按钮不可?/p>
在设|窗体的form.minimizebox和form.maximizebox 当ؓTrue时表C显C?False时表CZ?用编E方式见?
frmmaxmin.minnimizebox = False ( VB.NET)
frmmaxmin.maxmnimizebox = True ( VB.NET )
5. 如何使一个窗体不?/p>
我想最直接的办法是你调?Hide()Ҏ来做到这一?不过我想提供另一U方?看了之后你会获得一些其它的启发. ( 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 Q我惌U方式和Hide()调用的底层可能是不同的?/p>
6. 如何讄使窗体成为非矩Ş?
q个问题我想我提供的不是最专业的作?臛_它还不能辑ֈ我期望的那样,也就是说它在某些事g中它q会变回矩Ş.但至我可以告诉你:如果试图调用原来的win32’s API SetWindowRng是不行的,我曾如此的尝试过.现在你可能需要知道有关窗体的Region属?/p>
' // ( 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. 如何使一个窗体在屏幕的最端.
q是很实用的一个功?现在你不用在调用其它api?只用讄topmost 属性ؓTrue可以了.对于q个属性在设计时刻和运行时刻都是可以进行修改的.代码方式:
myTopForm.TopMost = True ( VB.NET)
8. 如何昄一个Model和非Model的窗?/p>
model和modeless的窗体主要将取决于你的应?最多的是用在显C对话框.当你需要model的窗体时你调用myform. ShowDialog而非Model的调用MyForm.Show,对于ShowDialog有一个可选参数ower可以让你Z个窗体徏立父子关p?比如:
' Visual Basic
Private Sub mnuAbout_Click(…args?
Dim f As New FormOption
f.ShowDialog Me
End Sub
有一炚w要注意的是对于ShowDialog来说,当执行到q一?H体昄,但这之后的代码将不会执行,只到H口关闭之后才l执?而对于Show来说是即时的,昄H体之后立x行下面的代码.
9. 如何制作一个MDI的窗?
1. 建立一个新的Windows Application目
2. 分别加入两个H体Form1 、Form2
3. 讄Form1的IsMdiContainer属性ؓTrue。它成为MDIȝ体?/p>
4. 在Form2中加入一个RichTextBox控gQƈ讄Dock为:Fill
5. 在Tools H体中拖一个MainMenu到窗体Form1Q然后徏立一个菜单File|Windows|Help三个菜单,File中包括New、Exit菜单;Windows中包括Cascade、Horizontal{?/p>
6. 讄Windows菜单的MdiList属性=TrueQ?q样每一个MDI子窗口将自动加在Windows菜单下面?/p>
7. 双击New菜单,然后加入以下代码Q?/p>
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) ;
}
另外q有以下常用?
this.layoutmdi(mdilayout.tilehorizontal);
this.layoutmdi(mdilayout.tilevertical);
9. F5q行?/p>
最l版的vs.net 不知是否会有一个通用的模板,不过用完全手工的方式产生一个MDI的窗口,昑־有些J琐Q不如VS.NET的IDE方式下那么简z?/p>
10. 如何你的窗体不昄在Q务条?
当窗体的边界风格是tools Window时它都不会出现在d条上?另外上面标题5中介l的Ҏ不仅H体看不?也不会出现在d条上.
如果你现在在Dotnet的世界,qg事也变的单,M的WinformH体现在都有ShowInTaskbar属性,所以你只要单的讄q个属性就可以了。同样你可以选择在属性窗口中ShowInTaskbar由True改ؓFalse。或是用代码的方式:
MyTaskBarFrm.ShowInTaskbar = false ; ( C# )
11. 如何制作一个带启动屏幕的窗?
需要你准备两个winform的窗体,一个叫它:splashscreenQ把它做成一个漂亮的H体。然后你需要一个主H体叫它Qform1吧,然后在这个窗体加入下面的代码?/p>
// ( C# )
protected override void OnLoad ( System.EventArgs e )
{
//make load take a long time
Thread.Sleep(2000);
base.OnLoad(e);
}
然后在main中加入这L代码Q?/p>
[STAThread]
static void Main()
{
SplashScreen splashForm = new SplashScreen();
splashForm.Show();
Form1 mainForm = new Form1() ;
mainForm.Load += new EventHandler(splashForm.MainScreen_Load);
Application.Run(mainForm);
}
不要忘了加上对threading的引用: using System.Threading;
12. 如何使你的窗体TrayIcon.
实现q个功能你可以运用notifyicon控g来达刎ͼ从tools Windows中将NotifyIcon拖到你的H体上然后在下面的事件加入如下代码,F5?/p>
' // VB.NET
Private mIconA As Icon = New Icon("Icon1.ico")
Private mIconB As Icon = New Icon("Icon2.ico")
Private mIconDisplayed As Boolean
Public Sub New()
MyBase.New
Form1 = Me
'This call is required by the Win Form Designer.
InitializeComponent
'TODO: Add any initialization after the InitializeComponent() call
'this form isn't used directly so hide it immediately
Me.Hide()
'setup the tray icon
Initializenotifyicon()
End Sub
Private Sub Initializenotifyicon()
'setup the default icon
notifyicon = New System.Windows.Forms.NotifyIcon()
NotifyIcon.Icon = mIconA
NotifyIcon.Text = "Right Click for the menu"
NotifyIcon.Visible = True
mIconDisplayed = True
'Insert all MenuItem objects into an array and add them to
'the context menu simultaneously
Dim mnuItms(3) As MenuItem
mnuItms(0) = New MenuItem("Show Form...", New EventHandler(AddressOf Me.ShowFormSelect))
mnuItms(0).DefaultItem = True
mnuItms(1) = New MenuItem("Toggle Image", New EventHandler(AddressOf Me.ToggleImageSelect))
mnuItms(2) = New MenuItem("-")
mnuItms(3) = New MenuItem("Exit", New EventHandler(AddressOf Me.ExitSelect))
Dim notifyiconMnu As ContextMenu = New ContextMenu(mnuItms)
notifyicon.ContextMenu = notifyiconMnu
End Sub
Public Sub ShowFormSelect(ByVal sender As Object, ByVal e As System.EventArgs)
'Display the settings dialog
Dim SettingsForm As New SettingsForm()
SettingsForm.ShowDialog()
End Sub
Public Sub ToggleImageSelect(ByVal sender As Object, ByVal e As System.EventArgs)
'called when the user selects the 'Toggle Image' context menu
'determine which icon is currently visible and switch it
If mIconDisplayed Then
'called when the user selects the 'Show Form' context menu
NotifyIcon.Icon = mIconB
NotifyIcon.Text = "Sad"
mIconDisplayed = False
Else
NotifyIcon.Icon = mIconA
NotifyIcon.Text = "Happy"
mIconDisplayed = True
End If
End Sub
Public Sub ExitSelect(ByVal sender As Object, ByVal e As System.EventArgs)
'called when the user selects the 'Exit' context menu
'hide the tray icon
NotifyIcon.Visible = False
'close up
Me.Close()
End Sub
'Form overrides dispose to clean up the component list.
Public Overloads Overrides Sub Dispose()
MyBase.Dispose()
components.Dispose()
End Sub
图标文g你自己准备了Q如果成功你可以看到有关NotifyIcond的各U功能了?/p>
13. 如何修改控制H体的尺寸和长宽寸.
主要是修改winform的size, Width 和Height属性。同样它们都是可以在设计和运行时刻进行修改和讄?/p>
form1.size = New System.Drawing.Size(100, 100) ( VB.NET )
form1.width += 100 (VB.NET )
form1.height -= 20 (VB.NET )
14. 如何建立一个Windows Explorer风格的窗?
1.建立一个新的windows Application
2.从toolboxH口拖一个treeview控g、、一个splitterk控g、一个listview控gQ分别在属性窗口中讄treeview的dock属性ؓQ:leftQ设|listview控g的dock属性ؓQfill
3Q?F5 q行
15. 如何讄初始的启动窗?/p>
无论是c#q是visual Basic的Winform目中你都可以在Solution ExplorerH口中右键你的ProjectQ然后选择属性,从你Project的属性页中选择你启动的H体或是Main()Ҏ?/p>
有些不同的是在目前的vs.net Beta2中C#目会自动生Main() ҎQVisual Basic.Net 的项目中你必自己添加Main()代码QC#中你可以Form1ҎM你可以启动的H体名:
// ( C# )
static void Main()
{
Application.Run(new Form1());
}
16. 如何建立一个有背景囑փ的窗?/p>
现在的winform中所有的H体都有一个backgroundimage属性,只用对它赋值就可以了。普通窗体可以在q行模式也可以在q行模式完成q个讄。比如在initializecomponent()或窗体的构造函C加入q样的代码:
this.backgroundimage = new Bitmap("C:\\DotNetApp\\WinForm\\Tile.bmp" ) ;
对于MDI的主H体要麻烦一些,在VS.NET的IDEH体中,当你讄完IsMdiContainer属性ؓTrue后,你需要查看一下InitializeComponent()中是否有q样的代?( C# )Q?/p>
this.mdiClient1.Dock = System.Windows.Forms.DockStyle.Fill;
this.mdiClient1.Name = "mdiClient1";
或是在窗口的属性窗口组合框中看到mdiclient1 System.Windows.Forms.mdiClient.q就是主MDIH口Q不q我没有在dotnet的文档中扑ֈM有关System.Windows.Forms.mdiClient的说明。然后你可以在InitializeComponent()或窗体的构造函C加入q样的代? C# )Q?/p>
this.mdiclient1.backgroundimage = new Bitmap("C:\\DotNetApp\\WinForm\\Tile.bmp" ) ;
|上有一个ImageView的例子,里面演示了给MDIȝ体中背景上加入一行Logo文字的方法,q样使你的MDIH体看v来很商业化,具体的你可以q样做:
1Q ?先在VS.NET 自动产生代码的InitializeComponent中看是否有这L语句( C# )Q?/p>
this.controls.addrange(new System.Windows.Forms.Control[] {this.mdiClient1});
又是q个mdiClient QhahaQ?/p>
2Q ?建立以下两个函数用于昄q个Logo字符Q?/p>
// ( C# )
protected void Mdi_OnPaint ( Object s, System.Windows.Forms.PaintEventArgs e )
{
Control c = (Control)s;
Rectangle r1 = c.ClientRectangle;
r1.Width -= 4;
r1.Height -= 4;
Rectangle r2 = r1;
r2.Width -= 1;
r2.Height -= 1;
Font f = new Font("Tahoma", 8);
String str = "MyWinform.NET ?2001 MyWinform Application V1.0";
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far;
sf.LineAlignment = StringAlignment.Far;
e.Graphics.DrawString(str, f, new SolidBrush(SystemColors.ControlDarkDark), r1, sf);
e.Graphics.DrawString(str, f, new SolidBrush(SystemColors.ControlLight), r2, sf);
}
protected void Mdi_OnResize ( Object s , System.EventArgs e )
{
Control c = (Control)s;
c.Invalidate();
}
3Q ?在InitializeComponent()或窗体的构造函C加入q样的代码:
( C# )
this.Controls[0].Paint += new PaintEventHandler( Mdi_OnPaint ) ;
this.Controls[0].Resize += new EventHandler( Mdi_OnResize ) ;
注意它加在InitializeComponent()后面或是在InitializeComponent函数中this.Controls.AddRange函数之后?/p>
以面的问题可真是不是问题的问题,如果遇到同样的问题的朋友看看是否也是犯了同样的错?br />
最后发现是一个中文的I格Q我在删除该变量时发现有一个空格的距离较大?/p>
message /zz3in1/SrvTest
description
The requested resource (/zz3in1/SrvTest) is not available.
q是Z呢?
用过?./../SrvTest q个是不行的?/./SrvTestq样可以。还?/SrvTest也可以?br />
---------------------------------------------------------------------
?span lang="EN-US">:面上元?span lang="EN-US">name属性和JavaScript引用的名U必M致包括大写
否则会提CZ一个错误信?span lang="EN-US"> "引用的元素ؓI或者不是对?span lang="EN-US">"
---------------------------------------------------------------------
对象属?span lang="EN-US">
document.title //
讄文档标题{h?span lang="EN-US">HTML?span lang="EN-US"><title>标签
document.bgColor //
讄面背景?span lang="EN-US">
document.fgColor //
讄前景?span lang="EN-US">(文本颜色)
document.linkColor //
未点击过的链接颜?span lang="EN-US">
document.alinkColor //
Ȁz链?span lang="EN-US">(焦点在此链接?span lang="EN-US">)的颜?span lang="EN-US">
document.vlinkColor //
已点击过的链接颜?span lang="EN-US">
document.URL //
讄URL属性从而在同一H口打开另一|页
document.fileCreatedDate //
文g建立日期Q只d?span lang="EN-US">
document.fileModifiedDate //
文g修改日期Q只d?span lang="EN-US">
document.fileSize //
文g大小Q只d?span lang="EN-US">
document.cookie //
讄和读?span lang="EN-US">cookie
document.charset //
讄字符?体中?span lang="EN-US">:gb2312
---------------------------------------------------------------------
对象Ҏ
document.write() //
动态向面写入内容
document.createElement(Tag) //
创徏一?span lang="EN-US">html标签对象
document.getElementById(ID) //
获得指定ID值的对象
document.getElementsByName(Name) //
获得指定Name值的对象
---------------------------------------------------------------------
images
集合(面中的图象)
a)
通过集合引用
document.images //
对应面上的<img>标签
document.images.length //
对应面?span lang="EN-US"><img>标签的个?span lang="EN-US">
document.images[0] //
W?span lang="EN-US">1?span lang="EN-US"><img>标签
document.images[i] //
W?span lang="EN-US">i-1?span lang="EN-US"><img>标签
b)
通过nane属性直接引?span lang="EN-US">
<img name="oImage">
document.images.oImage //document.images.name
属?span lang="EN-US">
c)
引用囄?span lang="EN-US">src属?span lang="EN-US">
document.images.oImage.src //document.images.name
属?span lang="EN-US">.src
d)
创徏一个图?span lang="EN-US">
var oImage
oImage = new Image()
document.images.oImage.src="/1.jpg"
//
同时在页面上建立一?span lang="EN-US"><img>标签与之对应可以显C?span lang="EN-US">
<html>
<img name=oImage>
<script language="javascript">
var oImage
oImage = new Image()
document.images.oImage.src="/1.jpg"
</script>
</html>
----------------------------------------------------------------------
forms
集合(面中的表单)
a)
通过集合引用
document.forms //
对应面上的<form>标签
document.forms.length //
对应面?span lang="EN-US"><form>标签的个?span lang="EN-US">
document.forms[0] //
W?span lang="EN-US">1?span lang="EN-US"><form>标签
document.forms[i] //
W?span lang="EN-US">i-1?span lang="EN-US"><form>标签
document.forms[i].length //
W?span lang="EN-US">i-1?span lang="EN-US"><form>中的控g?span lang="EN-US">
document.forms[i].elements[j] //
W?span lang="EN-US">i-1?span lang="EN-US"><form>中第j-1个控?span lang="EN-US">
b)
通过标签name属性直接引?span lang="EN-US">
<form name="Myform"><input name="myctrl"></form>
document.Myform.myctrl //document.
表单?span lang="EN-US">.控g?span lang="EN-US">
-----------------------------------------------------------------------
<html>
<!--Text
控g相关Script-->
<form name="Myform">
<input type="text" name="oText">
<input type="password" name="oPswd">
<form>
<script language="javascript">
//
获取文本密码框的?span lang="EN-US">
document.write(document.Myform.oText.value)
document.write(document.Myform.oPswd.value)
</script>
</html>
-----------------------------------------------------------------------
<html>
<!--Select
控g相关Script-->
<form name="Myform">
<select name="oSelect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
<script language="javascript">
//
遍历select控g?span lang="EN-US">option?span lang="EN-US">
var length
length=document.Myform.oSelect.length
for(i=0;i<length;i++)
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//
遍历optionƈ且判断某?span lang="EN-US">option是否被选中
for(i=0;i<document.Myform.oSelect.length;i++){
if(document.Myform.oSelect[i].selected!=true)
document.write(document.Myform.oSelect[i].value)
else
document.write("<font color=red>"+document.Myform.oSelect[i].value+"</font>")
}
</script>
<script language="javascript">
//
ҎSelectedIndex打印出选中?span lang="EN-US">option
//(0
?span lang="EN-US">document.Myform.oSelect.length-1)
i=document.Myform.oSelect.selectedIndex
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//
动态增?span lang="EN-US">select控g?span lang="EN-US">option?span lang="EN-US">
var oOption = document.createElement("OPTION");
oOption.text="4";
oOption.value="4";
document.Myform.oSelect.add(oOption);
</script>
<html>
-----------------------------------------------------------------------
<Div id="oDiv">Text</Div>
document.all.oDiv //
引用囑ֱoDiv
document.all.oDiv.style
document.all.oDiv.style.display="" //
囑ֱ讄为可?span lang="EN-US">
document.all.oDiv.style.display="none" //
囑ֱ讄为隐?span lang="EN-US">
/*document.all
表示document中所有对象的集合
只有ie支持此属性,因此也用来判断浏览器的种c?span lang="EN-US">*/
-----------------------------------------------------------------------