双击对标签不起作用
Double Click doesnt work on Label
我正在尝试在 label
为 double clicked
之后打开 form
。
我的代码:
else if (e.Clicks == 2)
{
foreach (var control in myFLP.Controls)
{
if(control is Label)
{
var Id = mylabel.Name.ToString();
int personID;
if (!String.IsNullOrWhiteSpace(Id) && int.TryParse(Id, out personID))
{
Form frm = new Form(_controller, personID);
frm.ShowDialog();
frm.Dispose();
}
else
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
frm2.Dispose();
Console.WriteLine("Hello");
}
}
}
}
当我 double click
在 label
上没有任何反应?所以我尝试在不传递任何参数的情况下调用 Form frm = new Form();
。表单在 double click
之后打开,但在 myFLP
?
中的每个标签都保持打开状态
编辑 1:
我添加了一个 ELSE
。我认为我的条件不正确。
我想你查错标签了。
下面一行
var Id = mylabel.Name.ToString();
应该改为
var Id = control.Name.ToString();
您可能订阅了活动 Control.Click。您应该订阅事件 Control.DoubleClick.
如果您使用的是 Visual Studio 设计器,select 双击您想要反应的标签;转到属性 (-enter),Select flash 查看所有事件,并在“操作”类别中查找 DoubleClick。
在函数 InitializeComponent() 中(查看表单的构造函数)您会看到类似于以下内容的内容:
this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick);
事件处理函数:
private void label1_DoubleClick(object sender, EventArgs e)
{
// sender is the label that received the double click:
Debug.Assert(Object.ReferenceEquals(sender, this.label1));
Label doubleClickedLabel = (Label)Sender;
var Id = doubleClickedLabel.Text;
int personID;
if (!String.IsNullOrWhiteSpace(Id) && int.TryParse(Id, out personID))
{ // open form. Note the use of the using statement
using (Form frm = new Form(_controller, personID)
{
frm.ShowDialog();
}
}
else
{
using (Form2 frm2 = new Form2())
{
frm2.ShowDialog();
}
}
}
我正在尝试在 label
为 double clicked
之后打开 form
。
我的代码:
else if (e.Clicks == 2)
{
foreach (var control in myFLP.Controls)
{
if(control is Label)
{
var Id = mylabel.Name.ToString();
int personID;
if (!String.IsNullOrWhiteSpace(Id) && int.TryParse(Id, out personID))
{
Form frm = new Form(_controller, personID);
frm.ShowDialog();
frm.Dispose();
}
else
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
frm2.Dispose();
Console.WriteLine("Hello");
}
}
}
}
当我 double click
在 label
上没有任何反应?所以我尝试在不传递任何参数的情况下调用 Form frm = new Form();
。表单在 double click
之后打开,但在 myFLP
?
编辑 1:
我添加了一个 ELSE
。我认为我的条件不正确。
我想你查错标签了。 下面一行
var Id = mylabel.Name.ToString();
应该改为
var Id = control.Name.ToString();
您可能订阅了活动 Control.Click。您应该订阅事件 Control.DoubleClick.
如果您使用的是 Visual Studio 设计器,select 双击您想要反应的标签;转到属性 (-enter),Select flash 查看所有事件,并在“操作”类别中查找 DoubleClick。
在函数 InitializeComponent() 中(查看表单的构造函数)您会看到类似于以下内容的内容:
this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick);
事件处理函数:
private void label1_DoubleClick(object sender, EventArgs e)
{
// sender is the label that received the double click:
Debug.Assert(Object.ReferenceEquals(sender, this.label1));
Label doubleClickedLabel = (Label)Sender;
var Id = doubleClickedLabel.Text;
int personID;
if (!String.IsNullOrWhiteSpace(Id) && int.TryParse(Id, out personID))
{ // open form. Note the use of the using statement
using (Form frm = new Form(_controller, personID)
{
frm.ShowDialog();
}
}
else
{
using (Form2 frm2 = new Form2())
{
frm2.ShowDialog();
}
}
}