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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# .net 下拉框显示提示内容-【ComboBox】

發(fā)布時(shí)間:2025/7/14 C# 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# .net 下拉框显示提示内容-【ComboBox】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

________________________________________________________________________________________________________________________________________________________________

這是自已一個(gè)小程序用到,要求在ComboBox下拉框上顯示提示文本也就是ToolTip

用谷歌搜了,在Codeproject上瀏覽的幾遍,發(fā)現(xiàn)相關(guān)的介紹比較少。

介紹的方法也主要是基于api捕捉實(shí)現(xiàn),這種方法的代碼看起來(lái)似乎比較復(fù)雜。仔細(xì)閱讀MSDN上關(guān)于ComboBox的內(nèi)容,可以看到,更為簡(jiǎn)單的實(shí)現(xiàn)方法是通過(guò)ComboBox的DrawItem(繪制下拉菜單時(shí)產(chǎn)生的事件)。

下面是我得到的實(shí)現(xiàn)代碼。

主要思路是當(dāng)下拉項(xiàng)目高亮?xí)r(DrawItemState.Selected),即顯示TooLTip(這里我們先要new一個(gè)ToolTip的實(shí)例,這里為toolTip1)。如果你有多個(gè)ComboBox需要顯示ToolTip,那么應(yīng)該考慮新建一個(gè)ComboBox的繼承類。這里我建議采用文獻(xiàn)[2]中介紹的方法,文獻(xiàn)[2]中的方法還可以實(shí)現(xiàn)一個(gè)功能,即如果下拉項(xiàng)目的內(nèi)容長(zhǎng)度沒有超過(guò)ComboBox的寬度時(shí),不顯示ToolTip。要注意的一點(diǎn)是使用文獻(xiàn)[2]中的代碼時(shí),你需要將顯示ToolTip的條件改為(e.State &?DrawItemState.Selected) ==?DrawItemState.Selected 并把Else后面的條件語(yǔ)句刪除,不然可能得不到我們想要的結(jié)果。近日由于自已一個(gè)小程序的需要,要求在ComboBox下拉項(xiàng)目(每個(gè)item)上顯示ToolTip,用Google搜了幾圈,在Codeproject上瀏覽的幾遍,發(fā)現(xiàn)相關(guān)的介紹比較少,介紹的方法也主要是基于api捕捉實(shí)現(xiàn),這種方法的代碼看起來(lái)似乎比較復(fù)雜(比較完整的實(shí)現(xiàn)代碼見參考文獻(xiàn)[3])。仔細(xì)閱讀MSDN上關(guān)于ComboBox的內(nèi)容[1],可以看到,更為簡(jiǎn)單的實(shí)現(xiàn)方法是通過(guò)ComboBox的DrawItem(繪制下拉菜單時(shí)產(chǎn)生的事件)。下面是我通過(guò)參考文獻(xiàn)[1]與[2]得到的實(shí)現(xiàn)代碼。主要思路是當(dāng)下拉項(xiàng)目高亮?xí)r(DrawItemState.Selected),即顯示TooLTip(這里我們先要new一個(gè)ToolTip的實(shí)例,這里為toolTip1)。如果你有多個(gè)ComboBox需要顯示ToolTip,那么應(yīng)該考慮新建一個(gè)ComboBox的繼承類。這里我建議采用文獻(xiàn)[2]中介紹的方法,文獻(xiàn)[2]中的方法還可以實(shí)現(xiàn)一個(gè)功能,即如果下拉項(xiàng)目的內(nèi)容長(zhǎng)度沒有超過(guò)ComboBox的寬度時(shí),不顯示ToolTip。要注意的一點(diǎn)是使用文獻(xiàn)[2]中的代碼時(shí),你需要將顯示ToolTip的條件改為(e.State &?DrawItemState.Selected) ==?DrawItemState.Selected 并把Else后面的條件語(yǔ)句刪除,不然可能得不到我們想要的結(jié)果。

//[界面設(shè)計(jì)中的代碼,desigener]// 建立名為kineticFileComboBox 下拉表單this.kineticFileComboBox.FormattingEnabled = true;this.kineticFileComboBox.Location = new System.Drawing.Point(213, 197);this.kineticFileComboBox.Name = "kineticFileComboBox";this.kineticFileComboBox.Size = new System.Drawing.Size(170, 20);this.kineticFileComboBox.TabIndex = 14;this.kineticFileComboBox.Text = "請(qǐng)先載入文件...";//重繪下拉表單窗口,需要在窗口設(shè)計(jì)代碼中加入下面這一句this.kineticFileComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;//下拉表單重繪事件this.kineticFileComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(kineticFileComboBox_DrawItem);this.kineticFileComboBox.DropDownClosed += new System.EventHandler(kineticFileComboBox_DropDownClosed);//[主程序中的代碼]private void kineticFileComboBox_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e){// 繪制背景 e.DrawBackground();//繪制列表項(xiàng)目 e.Graphics.DrawString(kineticFileComboBox .Items [e.Index ].ToString (), e.Font , System.Drawing.Brushes.Black, e.Bounds );//將高亮的列表項(xiàng)目的文字傳遞到toolTip1(之前建立ToolTip的一個(gè)實(shí)例)if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)toolTip1.Show(kineticFileComboBox.Items[e.Index].ToString(), kineticFileComboBox, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height);e.DrawFocusRectangle();}//關(guān)閉列表時(shí),同時(shí)關(guān)閉toolTip1的顯示private void kineticFileComboBox_DropDownClosed(object sender, System.EventArgs e){ toolTip1.Hide(kineticFileComboBox ); }

?

這樣就實(shí)現(xiàn)了我們的需求 下拉框項(xiàng)目里有提示信息

?????????????????????????????????????????????????????????????

轉(zhuǎn)載于:https://www.cnblogs.com/ftchen/p/5321649.html

總結(jié)

以上是生活随笔為你收集整理的C# .net 下拉框显示提示内容-【ComboBox】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。