C# 帶有滾動條的Label控件,用滑鼠選的時候還是有點閃爍:
namespace 带滚动条的Label控件 { public class TextBoxLabel : System.Windows.Forms.TextBox { [DllImport("user32", EntryPoint = "HideCaret")] private static extern bool HideCaret(IntPtr hWnd); [DllImport("user32", EntryPoint = "ShowCaret")] private static extern bool ShowCaret(IntPtr hWnd); public TextBoxLabel():base(){ this.TabStop = false; this.SetStyle(ControlStyles.Selectable, false); this.Cursor = Cursors.Default; this.ReadOnly = true; this.ShortcutsEnabled = false; this.HideSelection = true; this.GotFocus += new EventHandler(TextBoxLabel_GotFocus); this.MouseMove += new MouseEventHandler(TextBoxLabel_MouseMove); } private void TextBoxLabel_GotFocus(Object sender, System.EventArgs e){ if (ShowCaret(((TextBox)sender).Handle)){ HideCaret(((TextBox)sender).Handle); } } private void TextBoxLabel_MouseMove(Object sender, MouseEventArgs e){ if (((TextBox)sender).SelectedText.Length > 0){ ((TextBox)sender).SelectionLength = 0; } } } }
效果:
以上是C# 帶有捲軸的Label控制項的範例程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!