<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2006年4月21日

    在這里工作也有半年了,有得有失. 近來心里十分的茅盾, 項目已經黃色第5周了.我還是沒有去改變它. 我不知道是自己不行, 還是自己不想. 學了不多的自我激勵方法, 可是都不見效果. 也知道這個時候只有自己才能解救自己.

    posted @ 2006-11-21 13:25 rodney 閱讀(384) | 評論 (0)編輯 收藏
     
    以下內容轉載于http://www.aspxboy.com/private/5294/default.aspx,感謝該作者的分享.
    1.???? 如何設置一個From的邊界

    2.???? 如何建立一個透明的From

    3.???? 如何設置窗體在屏幕中的位置

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

    5.???? 如何使一個窗體不見

    6.???? 如何設置使窗體成為非矩形的.

    7.???? 如何使一個窗體在屏幕的最頂端.

    8.???? 如何顯示一個Model和非Model的窗體

    9.???? 如何制作一個MDI的窗體

    10.? 如何將你的窗體不顯示在任務條上.

    11.? 如何制作一個帶啟動屏幕的窗體.

    12.? 如何使你的窗體TrayIcon.

    13.? 如何修改控制窗體的尺寸和長寬尺寸.

    14.? 如何建立一個Windows Explorer風格的窗體.

    15.? 如何設置初始的啟動窗體

    16.? 如何建立一個有背景圖像的窗體
    ==========================================================================================

    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方式下那么簡潔。

    ?

    10.???? 如何將你的窗體不顯示在任務條上.

    當窗體的邊界風格是tools Window時它都不會出現在任務條上的.另外上面標題5中介紹的方法不僅窗體看不見,也不會出現在任務條上.

    ??? 如果你現在在Dotnet的世界,這件事也變的簡單,任何的Winform窗體現在都有ShowInTaskbar屬性,所以你只要簡單的設置這個屬性就可以了。同樣你可以選擇在屬性窗口中將ShowInTaskbar由True改為False。或是用代碼的方式:

    ??? MyTaskBarFrm.ShowInTaskbar = false ; ( C# )

    ?

    11.???? 如何制作一個帶啟動屏幕的窗體.

    需要你準備兩個winform的窗體,一個叫它:splashscreen,把它做成一個漂亮的窗體。然后你需要一個主窗體叫它:form1吧,然后在這個窗體加入下面的代碼。

    ???? // ( C# )

    ???? protected override void OnLoad ( System.EventArgs e )

    ???? {

    ???????? //make load take a long time

    ???????? Thread.Sleep(2000);

    ?

    ???????? base.OnLoad(e);

    ?

    ???? }

    然后在main中加入這樣的代碼:

    ???? [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.

    實現這個功能你可以運用notifyicon控件來達到,從tools Windows中將NotifyIcon拖到你的窗體上然后在下面的事件加入如下代碼,F5。

    ????

    ?? ' // 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

    ??? 圖標文件你自己準備了,如果成功你可以看到有關NotifyIcond的各種功能了。

    ?

    13.???? 如何修改控制窗體的尺寸和長寬尺寸.

    主要是修改winform的size, Width 和Height屬性。同樣它們都是可以在設計和運行時刻進行修改和設置。

    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.從toolbox窗口拖一個treeview控件、、一個splitterk控件、一個listview控件,分別在屬性窗口中設置treeview的dock屬性為::left;設置listview控件的dock屬性為:fill

    3: F5 運行

    ?

    15.???? 如何設置初始的啟動窗體

    無論是c#還是visual Basic的Winform項目中你都可以在Solution Explorer窗口中右鍵你的Project,然后選擇屬性,從你Project的屬性頁中選擇你啟動的窗體或是Main()方法。

    有些不同的是在目前的vs.net Beta2中C#項目會自動產生Main() 方法,Visual Basic.Net 的項目中你必須自己添加Main()代碼,C#中你可以將Form1改成任何你可以啟動的窗體名:

    ???? // ( C# )

    ??????? static void Main()

    ??????? {

    ??????????? Application.Run(new Form1());

    ??????? }

    ?

    16.???? 如何建立一個有背景圖像的窗體

    現在的winform中所有的窗體都有一個backgroundimage屬性,只用對它賦值就可以了。普通窗體可以在運行模式也可以在運行模式完成這個設置。比如在initializecomponent()或窗體的構造函數中加入這樣的代碼:

    this.backgroundimage = new Bitmap("C:\\DotNetApp\\WinForm\\Tile.bmp" ) ;

    ??? 對于MDI的主窗體要麻煩一些,在VS.NET的IDE窗體中,當你設置完IsMdiContainer屬性為True后,你需要查看一下InitializeComponent()中是否有這樣的代碼 ( C# ):

    ??????????? this.mdiClient1.Dock = System.Windows.Forms.DockStyle.Fill;

    ??????????? this.mdiClient1.Name = "mdiClient1";

    或是在窗口的屬性窗口組合框中看到mdiclient1 System.Windows.Forms.mdiClient.這就是主MDI窗口,不過我沒有在dotnet的文檔中找到任何有關System.Windows.Forms.mdiClient的說明。然后你可以在InitializeComponent()或窗體的構造函數中加入這樣的代碼( C# ):

    this.mdiclient1.backgroundimage? = new Bitmap("C:\\DotNetApp\\WinForm\\Tile.bmp" ) ;

    ??? 網上有一個ImageView的例子,里面演示了給MDI主窗體中背景上加入一行Logo文字的方法,這樣使你的MDI窗體看起來很商業化,具體的你可以這樣做:

    1.?? 先在VS.NET 自動產生代碼的InitializeComponent中看是否有這樣的語句( C# ):

    this.controls.addrange(new System.Windows.Forms.Control[] {this.mdiClient1});

    ??? 又是這個mdiClient (haha)

    2.?? 建立以下兩個函數用于顯示這個Logo字符:

    // ( 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();

    ??????? }

    3.?? 在InitializeComponent()或窗體的構造函數中加入這樣的代碼:

    ( C# )

    ??? this.Controls[0].Paint += new PaintEventHandler( Mdi_OnPaint ) ;

    ??? this.Controls[0].Resize += new EventHandler( Mdi_OnResize ) ;

    ??????? 注意將它加在InitializeComponent()后面或是在InitializeComponent函數中this.Controls.AddRange函數之后。

    posted @ 2006-05-10 10:01 rodney 閱讀(577) | 評論 (0)編輯 收藏
     

    昨天下班是計算機已經關機了。可今天早上一開到啟動Windows時系統一片藍屏。我用安全模式也進入不了。后來把硬盤拆下來,安裝到同事的機子上進行硬盤檢查。如果分區,壞道等。結果沒有什么問題,但為了資料的安全,我把有用的資料都copy到他機子上。把硬盤重新安裝回我的機子上。結果怎么樣。。。
    神了一點問題也沒有。真是虛驚一場呀。

    posted @ 2006-04-25 09:33 rodney 閱讀(715) | 評論 (0)編輯 收藏
     

    我用記事本打開一個以前的分頁程序。把其中的一部份代碼copy到我的現在的程序中,可是編譯器提示illegal character \12288錯誤。我按它提示的錯誤找到發生錯誤的行。我用別的變量名試了一下是可以的。難道是這個變量名輸入時用了中文的輸入法。我check一下,可是還是沒有解決。我又重新聲明了一個與這個變量名一樣的變量,把原來的注釋起來。后來發現可以了,我再把現在的注釋掉,用原來的變量,還是不行。我把它刪除掉重新寫了一遍包括空格也刪除。OK,就可以了。我想可能還是有中文的輸入字符或是空格。

    以面的問題可真是不是問題的問題,如果遇到同樣的問題的朋友看看是否也是犯了同樣的錯。

    最后發現是一個中文的空格,我在刪除該變量時發現有一個空格的距離較大。

    posted @ 2006-04-21 09:37 rodney 閱讀(1031) | 評論 (0)編輯 收藏
     
    主站蜘蛛池模板: XXX2高清在线观看免费视频| 国产成人亚洲精品| 黄色网址在线免费观看| 免费高清小黄站在线观看| 亚洲视频手机在线| 99视频有精品视频免费观看| 亚洲综合自拍成人| 久久久久久毛片免费播放| 亚洲精品国产情侣av在线| 亚州免费一级毛片| 亚洲1234区乱码| 免费黄网在线观看| 成年网在线观看免费观看网址| 亚洲欧洲久久久精品| 99精品视频在线观看免费| 亚洲天天做日日做天天看 | 精品国产亚洲男女在线线电影 | 亚洲精品第一国产综合精品99| 一本久久免费视频| 国产亚洲精品a在线观看app| 免费国产成人午夜在线观看| 久久久亚洲裙底偷窥综合| 大学生一级毛片免费看| 国产亚洲一卡2卡3卡4卡新区| 亚洲高清免费视频| 久久99热精品免费观看牛牛| 亚洲自偷精品视频自拍| 午夜电影免费观看| 国产精品无码永久免费888| 亚洲综合精品一二三区在线| 女人张开腿等男人桶免费视频| 草久免费在线观看网站| 久久久无码精品亚洲日韩蜜臀浪潮| 成人免费毛片内射美女APP| 免费视频精品一区二区| 亚洲国产精品不卡在线电影| 午夜毛片不卡高清免费| 中文字幕无码免费久久| 亚洲最大的成人网| 亚洲精品乱码久久久久久蜜桃不卡 | 性xxxx视频免费播放直播|