在下面的代码中,试图获取被单击的边框--文本块的名称或子块的文本--我的问题是没有"eaclick.Handled =true“;在代码中,它开始向我显示鼠标在单击之前输入的所有边框的名称,而不仅仅是通过添加"eaclick.Handled =true”而单击的oned;“告诉我鼠标进入的第一个边框,在我看来,它是保存在一个堆栈中的所有鼠标,当单击左键时,它会得到堆栈的安装,并让我得到我想要的最后一个鼠标,有人能解释我如何修复或者我做错了什么吗?”
for (int i = 0; i < NumPages; i++)
{
Border borderaux = new Border();
borderaux.Name = Convert.ToString(i);
//borderaux.MouseEnter += borderaux_MouseEnter;
Border clicked;
borderaux.MouseEnter += (smouse, eamouse) =>
{
clicked = (Border)smouse;
clicked.Cursor = Cursors.Hand;
MouseLeftButtonDown += (sclick, eaclick) =>
{
if (eaclick.ClickCount == 1)
{
TextBlock opcao = (TextBlock)(clicked).Child;
//string opcao="";
MessageBox.Show("Pressed-->" + opcao.Text);
//MessageBox.Show("Pressed-->" + clicked.Name);
eaclick.Handled = true;
}
};发布于 2014-04-16 10:33:05
问题是,使用MouseLeftButtonDown事件在MouseEnter事件中出现问题时,当单击时,它将显示x MessageBox,显示鼠标一直悬停到单击之前的所有边框数,其中的修复显示了实际单击的边框。
for (int i = 0; i < NumPages; i++)
{
Border borderaux = new Border();
borderaux.Name = Convert.ToString(i);
//borderaux.MouseEnter += borderaux_MouseEnter;
Border clicked;
borderaux.MouseLeftButtonDown += (sclick, eaclick) =>
{
if (eaclick.ClickCount == 1)
{
TextBlock opcao = (TextBlock)((Border)sclick).Child;
//string opcao="";
MessageBox.Show("Pressed-->" + opcao.Text);
//eaclick.Handled = true;
}
};
borderaux.MouseEnter += (smouse, eamouse) =>
{
clicked = (Border)smouse;
clicked.Cursor = Cursors.Hand;
};https://stackoverflow.com/questions/23082766
复制相似问题