使用GDI+自己画一个FORM,什么标题,什么颜色,随你改。

解决方案 »

  1.   

    protected override void OnPaint(PaintEventArgs pea)
         {
             //当实例化并重载OnPaint时需要调用基类的OnPaint
    //base.OnPaint(pea);
             
             Graphics g = pe.Graphics;        g.FillRectangle(new SolidBrush(Color.Red), 40, 40, 140, 140);
         }用GDI+重载OnPaint,标题栏的区域高度是固定的,宽度也可以通过FOrm的属性得到。
      

  2.   

    公用屬性
    AcceptButton 取得或設定使用者按下 ENTER 鍵時所按下的表單上按鈕。 
    AccessibilityObject (繼承自 Control) 取得指定給控制項的 AccessibleObject 。 
    AccessibleDefaultActionDescription (繼承自 Control) 取得或設定控制項的預設動作描述,供協助工具用戶端應用程式使用。 
    AccessibleDescription (繼承自 Control) 取得或設定協助工具用戶端應用程式使用之控制項的描述。 
    AccessibleName (繼承自 Control) 取得或設定協助工具用戶端應用程式使用的控制項名稱。 
    AccessibleRole (繼承自 Control) 取得或設定控制項的可存取角色。 
    ActiveControl (繼承自 ContainerControl) 取得或設定容器控制項上的作用中控制項。 
    ActiveForm 取得這個應用程式目前的現用表單。 
    ActiveMdiChild 取得目前現用的多重文件介面 (MDI) 子視窗。 
    AllowDrop (繼承自 Control) 取得或設定數值,指示控制項是否能接受使用者拖放上來的資料。 
    Anchor (繼承自 Control) 取得或設定控制項的哪些邊緣要錨定 (Anchor) 至其容器的邊緣。 
    AutoScale 取得或設定數值,指示表單是否要調整大小以配合表單上所使用的字型高度,並且縮放它的控制項。 
    AutoScaleBaseSize 取得或設定用以自動縮放表單的基底大小。 
    AutoScroll 覆寫。 取得或設定數值,指示表單是否啟用自動捲動。 
    AutoScrollMargin (繼承自 ScrollableControl) 取得或設定自動捲動邊界的大小。 
    AutoScrollMinSize (繼承自 ScrollableControl) 取得或設定自動捲動大小的最小值。 
    AutoScrollPosition (繼承自 ScrollableControl) 取得或設定自動捲動的位置。 
    BackColor 
    可由 .NET Compact Framework 所支援。
     覆寫。 請參閱 Control.BackColor。 
    BackgroundImage (繼承自 Control) 取得或設定在控制項中顯示的背景影像。 
    BindingContext (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項的 BindingContext 。 
    Bottom (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得控制項下邊緣和其容器工作區 (Client Area) 上邊緣之間的距離。 
    Bounds (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項的大小和位置,包括它的非工作區項目。 
    CancelButton 取得或設定使用者按下 ESC 鍵時所按下的按鈕控制項。 
    CanFocus (繼承自 Control) 取得指示控制項是否能取得焦點的值。 
    CanSelect (繼承自 Control) 取得指示能否選取控制項的值。 
    Capture (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示控制項是否捕捉住滑鼠。 
    CausesValidation (繼承自 Control) 取得或設定數值,指示控制項取得焦點時,是否會在任何需要驗證的控制項上執行驗證。 
    ClientRectangle (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得表示控制項工作區的矩形。 
    ClientSize 
    可由 .NET Compact Framework 所支援。
     取得或設定表單工作區的大小。 
    CompanyName (繼承自 Control) 取得包含控制項之應用程式的公司名稱或建立者。 
    Container (繼承自 Component) 取得包含 Component 的 IContainer 。 
    ContainsFocus (繼承自 Control) 取得指示控制項 (或其子控制項之一) 目前是否擁有輸入焦點的值。 
    ContextMenu (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定與控制項關聯的快速鍵功能表。 
    ControlBox 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示控制項方塊是否顯示在表單的標題列中。 
    Controls (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得控制項中包含的控制項集合。 
    Created (繼承自 Control) 取得數值,指示是否已經建立控制項。 
    Cursor (繼承自 Control) 取得或設定滑鼠指標移至控制項上時顯示的游標。 
    DataBindings (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得控制項的資料繫結 (Data Binding)。 
    DesktopBounds 取得或設定 Windows 桌面上表單的大小和位置。 
    DesktopLocation 取得或設定 Windows 桌面上表單的位置。 
    DialogResult 
    可由 .NET Compact Framework 所支援。
     取得或設定表單的對話方塊結果。 
    DisplayRectangle (繼承自 Control) 取得表示控制項顯示區域的矩形。 
    Disposing (繼承自 Control) 取得指示控制項是否正在處置的值。 
    Dock (繼承自 Control) 取得或設定控制項所停駐的父容器邊緣。 
    DockPadding (繼承自 ScrollableControl) 取得控制項所有邊的停駐填補設定。 
    Enabled (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示控制項是否可回應使用者互動。 
    Focused (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得指示控制項是否擁有輸入焦點的值。 
    Font (繼承自 Control) 取得或設定控制項顯示之文字字型。 
    ForeColor (繼承自 Control) 取得或設定控制項的前景色彩。 
    FormBorderStyle 
    可由 .NET Compact Framework 所支援。
     取得或設定表單的框線樣式。 
    Handle (繼承自 Control) 取得控制項要繫結的目標視窗控制代碼。 
    HasChildren (繼承自 Control) 取得指示控制項是否包含一或多個子控制項的值。 
    Height (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項的高度。 
    HelpButton 取得或設定數值,指示 [說明] 按鈕是否應該顯示在表單的標題方塊中。 
    Icon 
    可由 .NET Compact Framework 所支援。
     取得或設定表單的圖示。 
    ImeMode (繼承自 Control) 取得或設定控制項的輸入法 (IME) 模式。 
    InvokeRequired (繼承自 Control) 取得一個值。這個值會指示是否由於呼叫者是在建立控制項之執行緒以外的執行緒,因此在進行控制項的方法呼叫時,應呼叫叫用 (Invoke) 方法。 
    IsAccessible (繼承自 Control) 取得或設定數值,指示協助工具應用程式是否見得到控制項。 
      

  3.   

    IsDisposed (繼承自 Control) 取得指示控制項是否已經處置的值。 
    IsHandleCreated (繼承自 Control) 取得指示控制項是否有相關控制代碼的值。 
    IsMdiChild 取得或設定數值,指示表單是否為多重文件介面 (MDI) 子表單。 
    IsMdiContainer 取得或設定數值,指示表單是否為多重文件介面 (MDI) 子表單的容器。 
    KeyPreview 取得或設定數值,指示表單是否在事件傳送至具有焦點的控制項之前,要接收按鍵事件。 
    Left (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項左邊緣的 X 座標,以像素為單位。 
    Location (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定對應至控制項容器左上角之控制項左上角的座標。 
    MaximizeBox 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示最大化按鈕是否要顯示在表單的標題列中。 
    MaximumSize 取得表單所能調整的大小上限。 
    MdiChildren 取得表單陣列,表示以這個表單為父代的多重文件介面 (MDI) 子表單。 
    MdiParent 取得或設定這個表單目前的多重文件介面 (MDI) 父表單。 
    Menu 
    可由 .NET Compact Framework 所支援。
     取得或設定顯示在表單中的 MainMenu 。 
    MergedMenu 取得表單的合併功能表。 
    MinimizeBox 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示最小化按鈕是否顯示在表單的標題列中。 
    MinimumSize 取得或設定表單所能調整的大小下限。 
    Modal 取得數值,指示表單是否顯示為強制回應。 
    Name (繼承自 Control) 取得或設定控制項的名稱。 
    Opacity 取得或設定表單的透明度等級。 
    OwnedForms 取得 Form 物件陣列,其表示這個表單擁有的所有表單。 
    Owner 取得或設定擁有這個表單的表單。 
    Parent (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項的父容器。 
    ParentForm (繼承自 ContainerControl) 取得被指派容器控制項的表單。 
    ProductName (繼承自 Control) 取得包含控制項的組件的產品名稱。 
    ProductVersion (繼承自 Control) 取得包含控制項的組件的版本。 
    RecreatingHandle (繼承自 Control) 取得指示控制項目前是否正重新建立其控制代碼的值。 
    Region (繼承自 Control) 取得或設定與控制項關聯的視窗區域。 
    Right (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得控制項右邊緣和其容器左邊緣之間的距離。 
    RightToLeft (繼承自 Control) 取得或設定數值,指示控制項的元素是否對齊,以支援使用由右至左字型的地區設定。 
    ShowInTaskbar 取得或設定數值,指示表單是否顯示在 Windows 工作列中。 
    Site (繼承自 Control) 覆寫。 取得或設定控制項的站台。 
    Size 
    可由 .NET Compact Framework 所支援。
     取得或設定表單的大小。 
    SizeGripStyle 取得或設定可調整大小的底框樣式,以顯示在表單的右下角。 
    StartPosition 取得或設定表單在 Run Time 中的開始位置。 
    TabStop (繼承自 Control) 取得或設定數值,指示使用者是否能使用 TAB 鍵,將焦點 (Focus) 給予這個控制項。 
    Tag (繼承自 Control) 取得或設定物件,其包含控制項相關資料。 
    Text (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定這個控制項的相關文字。 
    Top (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項上邊緣的 Y 座標,以像素為單位。 
    TopLevel 取得或設定數值,指示是否要將表單顯示為最上層視窗。 
    TopLevelControl (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得沒有其他 Window Form 父控制項的父控制項。這通常是包含控制項的最外層 Form 。 
    TopMost 取得或設定數值,指示表單是否應該顯示為應用程式的最上層表單。 
    TransparencyKey 取得或設定將表示表單透明區域的色彩。 
    Visible (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定數值,指示是否顯示控制項。 
    Width (繼承自 Control) 
    可由 .NET Compact Framework 所支援。
     取得或設定控制項的寬度。 
    WindowState 
    可由 .NET Compact Framework 所支援。
     取得或設定表單的視窗狀態。 保護屬性
    CreateParams 覆寫。 請參閱 Control.CreateParams。 
    DefaultImeMode 覆寫。 取得控制項支援的預設輸入法 (IME) 模式。 
    DefaultSize 覆寫。 請參閱 Control.DefaultSize。 
    DesignMode (繼承自 Component) 取得數值,指示 Component 目前是否處於設計模式。 
    Events (繼承自 Component) 取得附加在這個 Component 上的事件處理常式清單。 
    FontHeight (繼承自 Control) 取得或設定控制項字型的高度。 
    HScroll (繼承自 ScrollableControl) 取得或設定數值,指示水平捲軸是否為可見的。 
    MaximizedBounds 取得並設定當表單最大化時的大小。 
    ResizeRedraw (繼承自 Control) 取得或設定數值,指示控制項重設大小時,是否會重繪本身。 
    ShowFocusCues (繼承自 Control) 取得指示控制項是否應顯示焦點矩形 (Focus Rectangle) 的值。 
    ShowKeyboardCues (繼承自 Control) 取得指示控制項是否應顯示鍵盤快速鍵的值。 
    VScroll (繼承自 ScrollableControl) 取得或設定數值,指示垂直捲軸是否為可見的。
      

  4.   

    Control.Refresh 方法  [C#]請參閱
    Control 類別 | Control 成員 | System.Windows.Forms 命名空間 | Update | Invalidate | Control 成員 (Visual J# 語法) | Managed Extensions for C++ 程式設計 
    需求
    平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Compact Framework - Windows CE .NET
    語言
    C#C++JScriptVisual Basic全部顯示
    強制控制項使其工作區失效,並且立即重繪其本身和任何子控制項。[Visual Basic]
    Public Overridable Sub Refresh()[C#]
    public virtual void Refresh();[C++]
    public: virtual void Refresh();[JScript]
    public function Refresh();備註
    繼承者注意事項:  在衍生類別中覆寫 Refresh 時,一定要呼叫基底類別的 Refresh 方法,使控制項和其子控制項失效並重繪。
      

  5.   

    首先,把form的FormBorderStyle属性设为 None
    然后在form的顶部随心所欲的画,最后记得化一个关闭按钮。
      

  6.   

    nxct(我的世界我做主),说的有道理,顶
      

  7.   

    回复人: nxct(我的世界我做主) ( ) 信誉:100  2003-10-28 19:53:00  得分:0 
     
     
      首先,把form的FormBorderStyle属性设为 None
    然后在form的顶部随心所欲的画,最后记得化一个关闭按钮。
      
     
    /////////////////////能给点代码告诉我怎么“随心所欲的画”吗?/////////////////////
      

  8.   

    回复人: nxct(我的世界我做主) 
      "首先,把form的FormBorderStyle属性设为 None
    然后在form的顶部随心所欲的画,最后记得化一个关闭按钮。"我是可以画,但是我要添加MainMenu菜单控件做菜单时,控件就到标题栏的上方去了,你有没有办法让菜单放到标题栏的下方呢??????????????????????????
      

  9.   

    这个问题问得可以,你可以重画标题栏.你先得到标题栏的hdc,然后由标题栏的hdc建立临时的图形DC,最后画出就可.
      

  10.   

    你看一下这一篇,对你可能会有帮助:
    http://www.uncj.net/article/list.asp?id=103
    源:
    http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/csharpui.mspx
      

  11.   

    把form的FormBorderStyle属性设为 None,然后就可以用图片了。自己画多累啊!而且效果还不好!
      

  12.   

    可以对OnPaint 进行重载,如下:
    protected override void OnPaint(PaintEventArgs pea)
         {
                     
             Graphics g = pe.Graphics;        g.FillRectangle(new SolidBrush(Color.white), 40, 40, 140, 140);
     }
      

  13.   

    cocosoft:
    我用了那种方法,可是,我的菜单加上去,就跑到的上面去了,怎么办;是不是我要用toolbar来代替,可是用toolbar和contextmenu做菜单时,我怎么让下拉菜单象.net那样有阴影,而不是windows的那样????
      

  14.   

    你可以先不加菜单在上面,先生成一个类。然后再使用。
    也可以自己绘制主菜单,如果你加象.NET那样有阴影的菜单,你可以自己进行绘制。然后定义你绘制的菜单的location属性。
      

  15.   

    看看有没有办法得到整个窗口的rect(至少在vc中是这样)