1. 程式人生 > >c# tab頁標畫上關閉按鈕

c# tab頁標畫上關閉按鈕

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace qqqqq
{
    public partial class Form1 : Form
    {
        public Form1()
            : base()
        {
            InitializeComponent();
        }
        private
Icon icon = null; int PageMaxIndex = 0; private void button1_Click(object sender, System.EventArgs e) { PageMaxIndex++; tabControl1.TabPages.Add(new TabPage("ABC-" + PageMaxIndex)); } //關閉區域的寬高 const int CLOSE_SIZE = 15; //重畫
private void tabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { Graphics g = e.Graphics; using (Pen p = new Pen(this.ForeColor)) { Rectangle myTabRect = tabControl1.GetTabRect(e.Index); //把字寫上
g.DrawString(tabControl1.TabPages[e.Index].Text , this.Font , SystemBrushes.ControlText , myTabRect.X + 2, myTabRect.Y + 2); //模擬繪製一個區域表示關閉的的地方(是一個紅色的方塊區域) //當然大多時候畫一個圖就可以了 12*12的 myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2); myTabRect.Width = CLOSE_SIZE; myTabRect.Height = CLOSE_SIZE; //g.DrawRectangle(p, myTabRect); icon = qqqqq.Properties.Resources._2; g.DrawIcon(icon, myTabRect); } } private void tabControl1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == MouseButtons.Left) { int x = e.X, y = e.Y; //計算關閉區域 Rectangle myTabRect = tabControl1.GetTabRect(tabControl1.SelectedIndex); myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2); myTabRect.Width = CLOSE_SIZE; myTabRect.Height = CLOSE_SIZE; //如果滑鼠在區域內就關閉選項卡 bool isClose = x > myTabRect.X && x < myTabRect.Right && y > myTabRect.Y && y < myTabRect.Bottom; if (isClose) { tabControl1.TabPages.Remove(tabControl1.SelectedTab); } } } private void Form1_Load(object sender, EventArgs e) { //設定若干屬性 tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; tabControl1.Padding = new System.Drawing.Point(15, 0); tabControl1.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem); tabControl1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.tabControl1_MouseDown); } private void tabPage1_Click(object sender, EventArgs e) { } } }

上面是百度下就能出來的東西,接下來一些注意點
1.程式碼中出現了Resources._2,是這樣新增進去的這裡寫圖片描述就是新增一個關閉的圖片
2.操蛋的是,很多時候,程式碼一模一樣都不能執行,這時候是因為Form1_Load是你手動輸入的,你需要在vs設計介面雙擊生成,這樣才能正常執行

相關推薦

c# tab關閉按鈕

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.

C# 重繪tabControl,新增關閉按鈕(續)

  在上一篇隨筆中,新增關閉按鈕是可以實現 ,但細心一點就會發現,每次關閉一個選項卡,tableControl都會自動跳到第一個頁面,顯然 這不是我們想要的,為此,我修改了部分的程式碼。除此之外,我還添加了一些兩個新的方法,用於建立新的tablePage.以下是我實現 的類

C# Winform實現捕獲窗體最小化、最大化、關閉按鈕事件的方法

comm c# 基於 prot void 地址 tp服務器 plugin ant 本文實例講述了C# Winform實現捕獲窗體最小化、最大化、關閉按鈕事件的方法,主要是通過重寫WndProc來實現的。分享給大家供大家參考。具體方法如下: 主要功能代碼如下:const i

C#自定義帶關閉按鈕的TabControl例項

網上有很多關於TabCcotrol繪 制關閉按鈕的程式碼,這裡是修改以後的支援image的顯示的例項 效果圖如下: 原始碼下載地址:http://download.csdn.net/download/flyking2/10182197 部分程式碼如下:

HUI-TAB在一個頁面點選一個連線,重新開啟一個tab

效果: index.jsp主頁面: <shiro:authenticated>             <li><a style="color:#804000;margin-left:5px;" id="todomatter"

swiper輪播圖包在div(tab切換)下js下一點選事件失效解決辦法

問題:    兩種解決辦法: 解決辦法一: var mySwiper = new Swiper ('.swiper-container', { nextButton: '.swiper-button-next', p

禁用視窗關閉按鈕

實現效果:    知識運用:   視窗處理方法WndProc的重寫方法 在其內部擷取關閉視窗的訊息以實現禁用   該方法主要用來處理Windows訊息   protected virtual void WndProc(ref Message m)   //m: 要處理的windows訊息 實現程式

H+ 編輯tab 儲存後 重新整理列表tab關閉自已。tabA呼叫tabB的方法

//注:在contabs.js檔案中 $(function () { }); 方法外 加入 //注: data-name="' + menuName + '" 這句是加入的自定義屬性 用於以後通過name屬性進行處理 如:通過name屬性關閉tab頁面 //var str = '<a

C# 窗體的最大化、最小化、關閉按鈕的自定義

1 建立一個窗體專案(本專案是在VS2015中進行建立) 2 將窗體的FormBorderStyle屬性設定為None,設定後窗體的標題欄將消失不顯示 3 新增2個panel空間,如下圖佈置,上面一個panel作為標題欄,下面一個panel作為窗體內容顯示區

當程式設計師遇到素:關於一個tabCSS效果的除錯

手頭上的jsp應用要做一個tab頁形式的選單,作為不喜歡畫圖的程式設計師,我copy了另一個系統的檔案。下面是html檔案顯示出來的原始效果 是用css做了圖片分割,tab所用的圖片僅有一個而已: tabs_bg.gif 要做成動態的,就不免要把html檔案 轉成 jsp檔案

C# Winform實現捕獲窗體最小化、最大化、關閉按鈕事件的方法,可通過重寫WndProc來實現

主要功能程式碼如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const i

MFC刪除工具欄關閉按鈕

MFC的工具欄,在浮動的時候,會有一個關閉按鈕,有時候要去掉這個關閉按鈕,要怎麼做呢? 方法為: 從CToolBar派生一個類,比如CToolBarEx,然後新增訊息WM_WINDOWPOSCHANGED的響應函式。 在函式中新增如下程式碼: void CToolBarEx

C# 在PDF中繪製和下文字

這篇文章將介紹如何使用C#在PDF文件中繪製上標和下標文字。 所需PDF元件: Free Spire.PDF for .NET 4.3 Free Spire.PDF dll 可通過官網下載或直接通過NuGet Package Manager搜尋Free Spire.PDF安裝。

C#中,Windows Console控制檯 設定控制檯標題、禁用關閉按鈕關閉快速編輯模式、插入模式

設定控制檯標題 禁用關閉按鈕 關閉快速編輯模式 關閉插入模式   設定控制檯標題、禁用關閉按鈕 #region 設定控制檯標題 禁用關閉按鈕 [DllImport("user32.dll", EntryPoi

C#中,Windows Console控制臺 設置控制臺標題、禁用關閉按鈕關閉快速編輯模式、插入模式

hwnd 遠程 blog 技術 down 圖片 nta 調用 getc 設置控制臺標題 禁用關閉按鈕 關閉快速編輯模式 關閉插入模式 設置控制臺標題、禁用關閉按鈕 #region 設置控制臺標題 禁用關閉按鈕 [

c#設定不顯示右上角的最小化最大化關閉按鈕

在C#窗體程式設計時,如何設定不顯示右上角的最小化最大化關閉按鈕。 可以通過this.ControlBox這個屬性的值來控制。 在Windows的窗體程式設計中,基本上每一個窗體都是一個最小化、最大化和關閉按鈕的。見慣了千篇一律,我們有時需要有一點新意,比如來把右上角

C# WinForm 最大化、最小化、關閉按鈕事件的攔截

private int WM_SYSCOMMAND = 0x112; private long SC_MAXIMIZE = 0xF030; private long SC_MINIMIZE = 0xF020; private long SC_CLOSE = 0xF060;

c#中給tabpage增加關閉按鈕

先來看下效果 要實現這個功能,我們分兩步來走,首先是需要繪製這個按鈕,然後再對這個按鈕的事件作出響應 1、將tabcontrol的繪製模式屬性修改為OwnerDrawFixed,這樣我們才能對DrawItem事件進行重寫 DrawItem繪製標題前將我們需要的按鈕繪製上

c#winform禁用關閉按鈕的方法

一、設定ControlBox為false 二、呼叫API實現了禁用關閉按鈕 using System;      using System.Collections.Generic;      using System.ComponentModel;      using System.Data;      u

C語言 關閉按鈕無效化 隱藏標題欄

//關閉按鈕無效 #include <windows.h> #include <stdio.h> int main() { DeleteMenu(GetSystemMenu(