gpt4 book ai didi

c# - 如何以编程方式在悬停面板内显示图片框?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:25 25 4
gpt4 key购买 nike

我有以下问题,因为我是新手,我不知道我问的问题是否正确...希望有人能给我指明正确的方向,在此先感谢。

我有一个面板。它里面有一个文本框(与面板大小相同(140 * 40)和一个图片框(更小,在右上角,15 * 15)。目前我可以 MouseHover面板(和文本框)显示带有删除图像的图片框。但如果我将鼠标移到图片框上,它就会消失,我希望只有当我 MouseLeave 时才会发生这种情况文本框或面板。

大学告诉我必须使用父属性,但我不知道该怎么做。

我不知道我的解释是否有任何好处,但我在这里给你留下了一些代码,所以你可以指出我的解决方案。

TextboxtbRolePanelpnRolePictureBoxpbDeleteX:

tbRole.MouseMove += (senderL, eL) =>
{
if (mouseHover)
{
pbDeleteX.Visible = true;
mouseHover = true;
}
else
{
pbDeleteX.Visible = true;
mouseHover = false;
}
tbRole.BackColor = Color.AliceBlue;
pnRole.BackColor = Color.AliceBlue;
// Je dois mettre ici le DoDragDrop parce que sinon sa ne marche pas le doubleclick
if (eL.Button == MouseButtons.Left)
{
idRoleG = idRoleL;
tbRole.BringToFront();
clRol = tbRole.BackColor;
mouseDown = true;
tbRole.AllowDrop = true;

tbRole.DoDragDrop(tbRole, DragDropEffects.Move);
}

};
tbRole.MouseHover += (senderL, eL) =>
{
if (mouseHover)
{
pbDeleteX.Visible = true;
mouseHover = false;
}
else
{
pbDeleteX.Visible = false;
mouseHover = false;
}
tbRole.BackColor = pnRole.BackColor = Color.AliceBlue;
};
tbRole.MouseLeave += (senderL, eL) =>
{
pnRole.BackColor = Color.Bisque;
tbRole.BackColor = Color.Bisque;
if (mouseHover)
{
pbDeleteX.Visible = true;
mouseHover = false;
}
else
{
pbDeleteX.Visible = false;
mouseHover = true;

}

};

最佳答案

我认为发生这种情况是因为当您将鼠标光标悬停在 pictureBox 上时,tbRole.MouseLeave 被触发。您可以使用断点检查它,看看它是否真的发生了。你可以做的是编写 2 个 bool 变量例如你可以说:

tbRole.MouseLeave += (senderL, eL) =>
{
boolText == false;

if(boolText == false && boolPic == false) {
pnRole.BackColor = Color.Bisque;
tbRole.BackColor = Color.Bisque;
pbDeleteX.Visible = false;
}
};

是这样的:

  1. 将光标悬停在文本框上。 boolText == trueboolPic == false
  2. 将光标悬停在图片上。 boolText == falseboolPic == true。 MouseLeave 未触发
  3. 离开图片框。 boolText == trueboolPic == false
  4. 离开文本框。 boolText == falseboolText == false。 MouseLeave 最终触发,picBox 消失。

因此,您必须添加 pictureBox 的 MouseHover 和 MouseLeave 的代码,并说如果 MouseHover 被触发则全局变量 boolPic == true 并且 boolPic == false 当 MouseLeave 被触发时。在文本框的 MouseHover 和 MouseLeave 中添加相同的逻辑。然后我希望它能起作用。 :P

关于c# - 如何以编程方式在悬停面板内显示图片框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com