最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)UI控件輸出日志的方法詳解

 更新時(shí)間:2022年10月28日 08:28:36   作者:Csharp小記  
一般情況下,我們的日志文件是用來記錄一些關(guān)鍵操作或者異常,并且是后臺存儲,并不對外開放的,但是也有些時(shí)候,需要將一些操作步驟、記錄等直接顯示在窗體上。本文就將利用UI控件輸出日志效果,需要的可以參考一下

文章描述

一般情況下,我們的日志文件是用來記錄一些關(guān)鍵操作或者異常,并且是后臺存儲,并不對外開放的;但是也有些時(shí)候,特別是做一些小工具程序,需要將一些操作步驟、記錄等直接顯示在窗體上。以便于使用者能夠知道執(zhí)行進(jìn)度等情況。

所以,我們可以簡單封裝一下,寫個(gè)專門用來輸出日志的控件;并且以不同的顏色表示不同的狀態(tài),讓日志更直觀明了。

如果將以下自定義控件放到控件庫中(即在新建項(xiàng)目的時(shí)候選擇Windows窗體控件庫),在其他程序中使用起來就很方便了,只要將這個(gè)dll拖到工具箱面板中,就可以在工具箱中看到這個(gè)控件。使用的時(shí)候直接從工具箱中拖出來就可以了。

開發(fā)環(huán)境

.NET Framework版本:4.5

開發(fā)工具

Visual Studio 2013

實(shí)現(xiàn)代碼

public partial class ui_log : ListBox
    {
        public ui_log()
        {
            InitializeComponent();

            this.DrawMode = DrawMode.OwnerDrawFixed;
            this.BackColor = Color.Black;
            this.Font = new Font("黑體", 12);
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
        }

        protected override void OnDrawItem(DrawItemEventArgs e)
        {
            base.OnDrawItem(e);

            if (e.Index >= 0 && this.Items.Count>0)
            {
                dynamic item = this.Items[e.Index];
                Brush brush = new SolidBrush(item.Color);
                e.Graphics.DrawString(item.Text, e.Font, brush, e.Bounds, StringFormat.GenericDefault);
            }
        }

        public  void Log(string text, Color color)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Action(() => { Log(text, color); }));
                return;
            }
            this.Items.Add(new { Color = color, Text = text });
            this.SelectedIndex = this.Items.Count - 1;
        }
        public void LogInfo(string text)
        {
            Log(text, Color.Green);
        }
        public void LogError(string text)
        {
            Log(text, Color.Red);
        }
        public void LogWarinig(string text)
        {
            Log(text, Color.Yellow);
        }

        public void ClearLog()
        {
            this.Items.Clear();
        }
    }
private void button1_Click(object sender, EventArgs e)
        {
            ui_log1.LogInfo("Info");
            Thread.Sleep(300);
            ui_log1.LogError("Error");
            Thread.Sleep(300);
            ui_log1.LogWarinig("Warinig");
            Thread.Sleep(300);
            ui_log1.Log("White", Color.White);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ui_log1.ClearLog();
        }

實(shí)現(xiàn)效果

代碼解析:首先是寫了一個(gè)自定義控件,繼承自ListBox;然后設(shè)置下DrawMode屬性,這個(gè)很重要,否則不會(huì)觸發(fā)DrawItem;最后在DrawItem事件中,對數(shù)據(jù)進(jìn)行重繪。

做完上述處理后,就不要直接使用Items.Add了,需要對Items.Add也進(jìn)行一次封裝,將顏色也傳進(jìn)去,即:this.Items.Add(new { Color = color, Text = text });

到此這篇關(guān)于C#實(shí)現(xiàn)UI控件輸出日志的方法詳解的文章就介紹到這了,更多相關(guān)C# UI控件輸出日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中創(chuàng)建統(tǒng)一API接口的實(shí)現(xiàn)方案

    C#中創(chuàng)建統(tǒng)一API接口的實(shí)現(xiàn)方案

    在 C# 中創(chuàng)建統(tǒng)一 API 接口需要從架構(gòu)設(shè)計(jì)、技術(shù)選型和代碼實(shí)現(xiàn)等多個(gè)層面進(jìn)行規(guī)劃,本文給大家詳細(xì)介紹了實(shí)現(xiàn)方案和完整示例代碼,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-04-04
  • c#中oracle的to_date函數(shù)使用方法

    c#中oracle的to_date函數(shù)使用方法

    C#使用參數(shù)傳值方式操作oracle的date字段,主要介紹了oracle的to_date使用方法,大家參考使用吧
    2014-01-01
  • C# 操作符之三元操作符淺析

    C# 操作符之三元操作符淺析

    C# 操作符之三元操作符“?:”是如何使用的呢?C# 操作符之三元操作符“?:”需要注意的是什么呢?那么本文就向你簡單介紹C# 操作符之三元操作符“?:”的基本情況。
    2011-02-02
  • C#中timer定時(shí)器用法實(shí)例

    C#中timer定時(shí)器用法實(shí)例

    這篇文章主要介紹了C#中timer定時(shí)器用法,實(shí)例分析了timer定時(shí)器實(shí)現(xiàn)定時(shí)觸發(fā)事件的技巧,需要的朋友可以參考下
    2015-04-04
  • C# 異步返回類型的幾種方式

    C# 異步返回類型的幾種方式

    異步編程已經(jīng)成為一種重要的編程范式,本文主要介紹了C#異步返回類型的幾種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • C#集合之可觀察集合的用法

    C#集合之可觀察集合的用法

    這篇文章介紹了C#集合之可觀察集合的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#之如何實(shí)現(xiàn)真正的四舍五入

    C#之如何實(shí)現(xiàn)真正的四舍五入

    這篇文章主要介紹了C#之如何實(shí)現(xiàn)真正的四舍五入問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • WPF實(shí)現(xiàn)篩選下拉多選控件的示例代碼

    WPF實(shí)現(xiàn)篩選下拉多選控件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)篩選下拉多選控件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2023-06-06
  • C#使用WebSocket與網(wǎng)頁實(shí)時(shí)通信的實(shí)現(xiàn)示例

    C#使用WebSocket與網(wǎng)頁實(shí)時(shí)通信的實(shí)現(xiàn)示例

    本文主要介紹了C#使用WebSocket與網(wǎng)頁實(shí)時(shí)通信的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • c#常用表格控件dataGridView的分頁顯示

    c#常用表格控件dataGridView的分頁顯示

    最近項(xiàng)目需要自己寫了一個(gè)用來給DataGridView分頁用的控件,下面這篇文章主要給大家介紹了關(guān)于c#常用表格控件dataGridView的分頁顯示,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10

最新評論

凯里市| 岗巴县| 夏河县| 福州市| 亚东县| 精河县| 怀柔区| 庆云县| 即墨市| 普宁市| 商水县| 醴陵市| 仁寿县| 庆阳市| 本溪| 昌邑市| 梁河县| 墨竹工卡县| 朝阳市| 乌拉特中旗| 简阳市| 广德县| 定陶县| 凌源市| 边坝县| 古丈县| 漾濞| 香港 | 玉溪市| 宜兰市| 锦屏县| 文昌市| 文化| 自治县| 峨边| 丰县| 娄底市| 名山县| 台南市| 博兴县| 田林县|