国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

學做網(wǎng)站必須php嗎seo jsbapp9

學做網(wǎng)站必須php嗎,seo jsbapp9,用wordpress建站案例,做網(wǎng)站建設的公司有哪些文章目錄 需求來源實現(xiàn)思路實施請看VCR等等別走,有優(yōu)化 需求來源 需要在鼠標浮動到指定位置后提示出詳細的信息,一開始使用的tooltip實現(xiàn),但是里面的內(nèi)容效果并不理想,需要有條理性,于是就想到能不能將展示的東西分列…

文章目錄

  • 需求來源
  • 實現(xiàn)思路
  • 實施
  • 請看VCR
  • 等等別走,有優(yōu)化

需求來源

需要在鼠標浮動到指定位置后提示出詳細的信息,一開始使用的tooltip實現(xiàn),但是里面的內(nèi)容效果并不理想,需要有條理性,于是就想到能不能將展示的東西分列。

實現(xiàn)思路

使用兩個字符串數(shù)據(jù)接收通過字符串切割后的內(nèi)容,然后通過在tooltip的draw事件繪制時將內(nèi)容分為兩次繪制。

實施

自定封裝一個ToolTip控件,繼承ToolTIp然后添加兩個事件,分別時Draw Popup
DrawPopup 這兩個事件在 ToolTip 類中扮演著重要的角色,用于自定義工具提示的顯示和繪制。

Draw 事件在工具提示需要繪制時觸發(fā)。通過處理這個事件,可以自定義工具提示的外觀和內(nèi)容。

  • 作用

    • 自定義繪制工具提示:在處理 Draw 事件時,可以完全控制工具提示的繪制,包括背景顏色、邊框、文本內(nèi)容和文本樣式等。
    • 實現(xiàn)高級圖形效果:可以使用 Graphics 對象來實現(xiàn)復雜的繪制效果,比如漸變色、圖片、各種形狀等。
  • 使用場景

    • 當默認的工具提示外觀不能滿足需求時,可以通過 Draw 事件自定義繪制工具提示。
    • 需要在工具提示中顯示非文本內(nèi)容(如圖像、圖表)時,可以在 Draw 事件中實現(xiàn)。

Popup 事件在工具提示顯示之前觸發(fā)。通過處理這個事件,可以動態(tài)調(diào)整工具提示的大小和內(nèi)容。

  • 作用

    • 動態(tài)調(diào)整工具提示大小:在處理 Popup 事件時,可以根據(jù)內(nèi)容的大小動態(tài)設置工具提示的尺寸,以確保內(nèi)容完全顯示。
    • 準備繪制環(huán)境:可以在 Popup 事件中進行一些準備工作,比如計算文本的最大寬度和高度,為后續(xù)的 Draw 事件做準備。
  • 使用場景

    • 需要根據(jù)內(nèi)容動態(tài)調(diào)整工具提示的大小時,可以在 Popup 事件中進行計算和設置。
    • 需要在工具提示顯示前進行一些準備工作,比如加載圖片、計算文本尺寸等,可以在 Popup 事件中處理。
using System;
using System.Drawing;
using System.Windows.Forms;namespace Test1
{// 自定義工具提示類,繼承自 ToolTippublic class CustomToolTip : ToolTip{private string[] Column1; // 用于存儲第一列的文本數(shù)組private string[] Column2; // 用于存儲第二列的文本數(shù)組private Font TextFont; // 工具提示文本的字體// 記錄第一列的寬度private int Column1MaxWidth = 0;// 構造函數(shù),初始化自定義工具提示public CustomToolTip(){TextFont = new Font("微軟雅黑", 15.0f); // 設置字體為“微軟雅黑”,大小為15this.OwnerDraw = true; // 啟用自定義繪制工具提示this.Draw += new DrawToolTipEventHandler(OnDraw); // 訂閱 Draw 事件this.Popup += new PopupEventHandler(OnPopup); // 訂閱 Popup 事件}// 設置工具提示的內(nèi)容,將其拆分為兩列public void SetContent(string content){var parts = content.Split(new string[] { "," }, StringSplitOptions.None); // 按逗號拆分內(nèi)容int midPoint = (parts.Length + 1) / 2; // 計算拆分成兩列的中間點Column1 = new string[midPoint]; // 初始化第一列數(shù)組Column2 = new string[parts.Length - midPoint]; // 初始化第二列數(shù)組// 填充列數(shù)組for (int i = 0; i < parts.Length; i++){if (i < midPoint){Column1[i] = parts[i];}else{Column2[i - midPoint] = parts[i];}}}// 自定義工具提示的繪制事件處理程序private void OnDraw(object sender, DrawToolTipEventArgs e){e.DrawBackground(); // 繪制工具提示的背景e.DrawBorder(); // 繪制工具提示的邊框Brush brush = Brushes.Black; // 用于繪制文本的畫筆Rectangle rct2 = e.Bounds; // 工具提示的邊界e.Graphics.FillRectangle(Brushes.Bisque, rct2); // 用淺橙色填充背景e.Graphics.DrawRectangle(Pens.DarkGray, new Rectangle(0, 0, rct2.Width - 1, rct2.Height - 1)); // 繪制邊框// 繪制第一列文本for (int i = 0; i < Column1.Length; i++){e.Graphics.DrawString(Column1[i], TextFont, brush, new PointF(5, i * 25));}// 繪制第二列文本for (int i = 0; i < Column2.Length; i++){e.Graphics.DrawString(Column2[i], TextFont, brush, new PointF(Column1MaxWidth, i * 25));}}// 在工具提示顯示之前計算其大小的事件處理程序private void OnPopup(object sender, PopupEventArgs e){int Column2MaxWidth = 0; // 用于存儲第二列的最大寬度int maxHeight = 0; // 用于存儲工具提示的最大高度// 計算第一列的最大寬度和高度foreach (var text in Column1){var sz = TextRenderer.MeasureText(text, TextFont);if (sz.Width > Column1MaxWidth)Column1MaxWidth = sz.Width;maxHeight += sz.Height;}// 計算第二列的最大寬度foreach (var text in Column2){var sz = TextRenderer.MeasureText(text, TextFont);if (sz.Width > Column2MaxWidth)Column2MaxWidth = sz.Width;}// 確保高度適應兩列中較高的一列maxHeight = Math.Max(maxHeight, Column2.Length * TextRenderer.MeasureText("A", TextFont).Height);e.ToolTipSize = new Size(Column1MaxWidth + Column2MaxWidth + 20, maxHeight + 30); // 設置工具提示大小,并添加一些間距}}
}

這里對字符串的分割是根據(jù),來的,根據(jù)個人需要修改SetContent方法中切割字符,當然也可以封裝一下,這里本人偷懶了。
下面是使用的方式,先在我們窗體中創(chuàng)建一個自定義的Tooltip對象,具體使用就是先設置SetContent方法將要顯示的內(nèi)容傳遞進去。最后將要tooltip關聯(lián)的控件對象綁定就行了

  private CustomToolTip custom = new CustomToolTip();private void Form1_Load(object sender, EventArgs e){string aa = $"工作人員姓名:aaa,出勤地點:aaa333344445555555555," +$"工號:aaa,出勤時間:aaa," +$"手機:aaaaaaaa,本站時間:aaa," +$"站名:aaa,工作班制:aaa," +$"當前已工作時間:aaa,班制時長:aaa1111," +$"工作人員所屬部門:aaa";custom.SetContent(aa);custom.SetToolTip(button1,aa);//這里傳遞第二個參數(shù)只要是字符串就行,因為在SetContent方法時已經(jīng)設置好要顯示的內(nèi)容了。}

請看VCR

在這里插入圖片描述

等等別走,有優(yōu)化

鑒于上面我們使用的在From_Load方法中去使用自定義tip時調(diào)用SetToolTip時第二個參數(shù)傳遞有些冗余,這里把自定義的tip控件給優(yōu)化了一下,優(yōu)化雖小也是進步

using System;
using System.Drawing;
using System.Windows.Forms;namespace Test1
{// 自定義工具提示類,繼承自 ToolTippublic class CustomToolTip : ToolTip{private string[] Column1; // 用于存儲第一列的文本數(shù)組private string[] Column2; // 用于存儲第二列的文本數(shù)組private Font TextFont; // 工具提示文本的字體priavte Control ParentCtrl;//父窗體控件// 記錄第一列的寬度private int Column1MaxWidth = 0;// 構造函數(shù),初始化自定義工具提示public CustomToolTip(){TextFont = new Font("微軟雅黑", 15.0f); // 設置字體為“微軟雅黑”,大小為15this.OwnerDraw = true; // 啟用自定義繪制工具提示this.Draw += new DrawToolTipEventHandler(OnDraw); // 訂閱 Draw 事件this.Popup += new PopupEventHandler(OnPopup); // 訂閱 Popup 事件}// 設置工具提示的內(nèi)容,將其拆分為兩列private void SetContent(string content){var parts = content.Split(new string[] { "," }, StringSplitOptions.None); // 按逗號拆分內(nèi)容int midPoint = (parts.Length + 1) / 2; // 計算拆分成兩列的中間點Column1 = new string[midPoint]; // 初始化第一列數(shù)組Column2 = new string[parts.Length - midPoint]; // 初始化第二列數(shù)組// 填充列數(shù)組for (int i = 0; i < parts.Length; i++){if (i < midPoint){Column1[i] = parts[i];}else{Column2[i - midPoint] = parts[i];}}}// 自定義工具提示的繪制事件處理程序private void OnDraw(object sender, DrawToolTipEventArgs e){e.DrawBackground(); // 繪制工具提示的背景e.DrawBorder(); // 繪制工具提示的邊框Brush brush = Brushes.Black; // 用于繪制文本的畫筆Rectangle rct2 = e.Bounds; // 工具提示的邊界e.Graphics.FillRectangle(Brushes.Bisque, rct2); // 用淺橙色填充背景e.Graphics.DrawRectangle(Pens.DarkGray, new Rectangle(0, 0, rct2.Width - 1, rct2.Height - 1)); // 繪制邊框// 繪制第一列文本for (int i = 0; i < Column1.Length; i++){e.Graphics.DrawString(Column1[i], TextFont, brush, new PointF(5, i * 25));}// 繪制第二列文本for (int i = 0; i < Column2.Length; i++){e.Graphics.DrawString(Column2[i], TextFont, brush, new PointF(Column1MaxWidth, i * 25));}}// 在工具提示顯示之前計算其大小的事件處理程序private void OnPopup(object sender, PopupEventArgs e){int Column2MaxWidth = 0; // 用于存儲第二列的最大寬度int maxHeight = 0; // 用于存儲工具提示的最大高度//設置將文本拆分兩個數(shù)組,用于后期顯示為兩列---在這里通過tip控件自帶的GetToolTip方法獲取提示文本內(nèi)容然后進行拆分初始化SetContent(this.GetToolTip(ParentCtrl));// 計算第一列的最大寬度和高度foreach (var text in Column1){var sz = TextRenderer.MeasureText(text, TextFont);if (sz.Width > Column1MaxWidth)Column1MaxWidth = sz.Width;maxHeight += sz.Height;}// 計算第二列的最大寬度foreach (var text in Column2){var sz = TextRenderer.MeasureText(text, TextFont);if (sz.Width > Column2MaxWidth)Column2MaxWidth = sz.Width;}// 確保高度適應兩列中較高的一列maxHeight = Math.Max(maxHeight, Column2.Length * TextRenderer.MeasureText("A", TextFont).Height);e.ToolTipSize = new Size(Column1MaxWidth + Column2MaxWidth + 20, maxHeight + 30); // 設置工具提示大小,并添加一些間距}}
}
        private CustomToolTip custom ;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){custom = new CustomToolTip(button1);string aa = $"工作人員姓名:aaa,出勤地點:aaa333344445555555555," +$"工號:aaa,出勤時間:aaa," +$"手機:aaaaaaaa,本站時間:aaa," +$"站名:aaa,工作班制:aaa," +$"當前已工作時間:aaa,班制時長:aaa1111," +$"工作人員所屬部門:aaa";custom.SetToolTip(button1,aa);}
http://aloenet.com.cn/news/35690.html

相關文章:

  • 做國外網(wǎng)站關鍵詞用寫營銷推廣內(nèi)容
  • 不用fash做的視頻網(wǎng)站個人怎么做網(wǎng)站
  • 網(wǎng)站開發(fā)投標書范本目錄阿里云域名注冊查詢
  • vb實現(xiàn)asp網(wǎng)站開發(fā)百度圖像搜索
  • 建站寶盒做的網(wǎng)站遼源seo
  • 自學做網(wǎng)站要多久成都公司網(wǎng)站seo
  • 自己做網(wǎng)站哪里最好網(wǎng)絡推廣方法有幾種
  • 單位的網(wǎng)站怎樣設計才美觀鹽城seo營銷
  • 網(wǎng)站設計制作公司地址網(wǎng)推項目接單平臺
  • 懷來縣建設局網(wǎng)站seo綜合查詢 站長工具
  • 搜索引擎收錄提交優(yōu)化營商環(huán)境條例
  • 蘇州園區(qū)房價狼雨seo網(wǎng)站
  • 主機銷售網(wǎng)站源碼網(wǎng)絡營銷做得比較成功的案例
  • 有個音樂網(wǎng)站老板做淫穢直播被抓如何讓百度快速收錄
  • wordpress建站哪里好百度指數(shù)移動版app
  • php網(wǎng)站建設的基本流程圖中山360推廣
  • 河源網(wǎng)站設計短視頻營銷推廣方案
  • 長春網(wǎng)站建設及推廣免費seo網(wǎng)站推廣在線觀看
  • 深圳市官網(wǎng)網(wǎng)站建設報價注冊網(wǎng)站流程和費用
  • 網(wǎng)站備案流程實名認證東莞網(wǎng)站制作外包
  • Linux主機設置網(wǎng)站首頁計算機培訓課程
  • 延慶b2c網(wǎng)站制作價格百度推廣售后
  • 建立網(wǎng)站如何推廣東莞優(yōu)化疫情防控措施
  • 商丘做網(wǎng)站需要多少錢企業(yè)seo案例
  • 手機高端網(wǎng)站開發(fā)企業(yè)網(wǎng)站設計與實現(xiàn)論文
  • 做網(wǎng)站 (公司)如何做好平臺推廣
  • 做外貿(mào)怎樣免費登錄外國網(wǎng)站網(wǎng)頁設計首頁制作
  • 網(wǎng)站數(shù)據(jù)庫連接失敗百度識圖在線識別
  • 做教程的網(wǎng)站內(nèi)容怎么找百度統(tǒng)計收費嗎
  • 汕頭個人建站模板seo排名優(yōu)化技術