日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

【自定义控件】c#winform自定义控件实现标签控件

發布時間:2023/12/4 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【自定义控件】c#winform自定义控件实现标签控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

首先我們設計這個控件的時候要明白控件是怎樣交互的, 熟悉b站的小伙伴應該知道 ,我們上傳視頻的時候會去選擇標簽 ,我們輸入標簽文本 按下回車就代表該標簽已經添加成功了,效果圖如下!

控件拆分

我們首先拆分一下該控件, 整個控件可以看成是一個已選標簽界面和一個文本輸入界面。

已選標簽界面里面是有很多小標簽,一個一個組成的。

一:那么我們首先實現已選標簽界面里面標簽控件

標簽控件我是繼承的UserControl 然后再userControl界面添加一個label控件來模擬關閉按鈕。

public partial class TagControl : BaseRadiusUserControl

?然后寫? 一個定義的關閉事件??

[Description("關閉事件"), Category("自定義")]public event EventHandler CloseClick;

? ? ?在label控件點擊X去觸發該關閉事件

private void close_Click(object sender, EventArgs e){CloseClick?.Invoke(this,e);}

然后寫一個賦值的方法 當文本值大于2的時候去調整控件的大小。

public void SetText(string text){this.Content = text;if (text.Length > 1){this.Width = 60 + (text.Length - 1) * 20;}}

這樣小標簽控件就實現了!

二:然后我們去實現 標簽的整體控件

? ? ?上半部分是一個已選標簽控件, 下半部分是一個文本框。

? ? ? 我們新建一個標簽控件繼承usercontrol

上半部分使用flowlaoutpanel控件, 下半部分使用文本框。

我們在文本框的KeyUp事件中添加小控件, 添加完成后清空文本框。

if (e.KeyCode == Keys.Enter){TagControl tagControl = new TagControl();tagControl.SetText(txtFlag.Text);tagControl.CloseClick += TagControl_CloseClick;flowTag.Controls.Add(tagControl);txtFlag.Text = "";}

我們在動態加載小標簽控件的時候寫上close關閉事件

private void TagControl_CloseClick(object sender, EventArgs e){TagControl tagControl = (TagControl)sender;flowTag.Controls.Remove(tagControl);}

實際效果

這樣我們仿b站標簽控件就實現成功了!

?如果覺得我的文章還不錯,請點贊并給個關注,謝謝各位看官姥爺!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【自定义控件】c#winform自定义控件实现标签控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。