我正在创建一个自定义控件。在那个控件上我有大约20个子控件。当我在我的用户控件上移动光标时,我希望光标根据它正在移动的子控件进行更改。
例如
User Control
--Control 1 : if(Condition 1) { Mouse - Wait } else { Mouse - Default }
--Control 2 : if(Condition 1) { Mouse - Hand } else { Mouse - Default }
--Control 3 : Mouse - Default
......等等。
有没有办法在用户控件的MouseMove事件上确定我正在移动哪个子控件,以便我可以在单个事件中更改光标。
答案 0 :(得分:2)
您不需要依赖事件,可以使用给定控件的Cursor Property
。例如,如果您有三个TextBox,则可以在“设计视图”的“属性框”中更改此属性,或者只写:
textBox1.Cursor = Cursors.WaitCursor;
textBox2.Cursor = Cursors.Hand;
textBox3.Cursor = Cursors.Default;
当在每个文本框中“输入”时,光标将显示给定的形状。
答案 1 :(得分:0)
您可以分配给EACH usercontrol的鼠标悬停,也可以分配给ONE事件处理程序,这对所有控件都是相同的。根据您选择的技术,您可以设置光标,第二种技术需要a)硬编码的if / else或switch情况或b)反射投射发送器到右类型然后设置鼠标光标。 这有帮助吗?
答案 2 :(得分:0)
你可以这样做。假设您有三个按钮,其名称为button1,button2& BUTTON3。
this.button1.MouseHover + = new System.EventHandler(this.MouseHover); this.button2.MouseHover + = new System.EventHandler(this.MouseHover); this.button3.MouseHover + = new System.EventHandler(this.MouseHover);
现在将其写为新事件:
private void MouseHover(object sender,EventArgs e) { 按钮oButton =(按钮)发件人; if(oButton.Name ==“button1”) { oButton.Cursor = Cursors.WaitCursor; } 否则if(oButton.Name ==“button2”) { oButton.Cursor = Cursors.Hand; } 否则if(oButton.Name ==“button3”) { oButton.Cursor = Cursors.Default; } }
它将按您的需要工作。
由于