각 셀에 Panel이 포함 된 프로그래밍 방식으로 만들어진 TableLayoutPanel이 있습니다. 각 패널에는 맞춤 라벨이 있습니다. (레이블의 Enabled 속성은 false로 설정되어 있는데 차이가 있는지는 확실하지 않습니다.) 사용자가 마우스를 가리킬 때마다 Label 텍스트를 표시하고 싶습니다.TableLayoutPanel에서 셀 위로 마우스를 가져 가면 텍스트 표시 - C#
내가 읽은 것으로부터 툴팁이 좋은 방법이지만, 제대로 작동하지 못했습니다.
TableLayoutPanel은 간단히 이름이 "tlp"이며 쉽게 액세스 할 수 있도록 양식의 구성원입니다 (이름이 "toolTip"인 ToolTip에서도 마찬가지 임).
지금은 단지 모든 종류의 텍스트를 가져 오려고합니다. 레이블을 사용하면 여기에 문자열을 대치하겠습니다.
private void hoverOverSpace(object sender, EventArgs e)
{
int row = tlp.GetRow((Panel)sender);
int col = tlp.GetColumn((Panel)sender);
toolTip.Show("Does this work?", tlp.GetControlFromPosition(col, row).Controls[0]);
//toolTip.Show("Does this work?", tlp.GetControlFromPosition(col, row));
}
내 도구 설명을 표시하지 못했습니다. 내가 잘못한 일을하고 있습니까/내가 성취하려는 일을하기위한 더 좋은 방법이 있습니까?
편집 : 나는 각 패널에 툴팁을 추가하려고 시도했지만 여전히 아무것도
// Add Panels to TableLayoutPanel
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
// Create new Panel
Panel space = new Panel()
{
Size = new Size(45, 45),
Dock = DockStyle.Fill,
Margin = new Padding(0)
};
space.MouseClick += new MouseEventHandler(clickOnSpace);
CustomLabel info = new CustomLabel(false, 0, Color.White); // Create new CustomLabel
space.Controls.Add(info); // Add CustomLabel to Panel
tlp.Controls.Add(space, j, i); // Add Panel to TableLayoutPanel
toolTip = new ToolTip();
toolTip.SetToolTip(space, info.Text);
}
}
*는 "'Label's ''Enabled' 속성은 FALSE' '로 설정되고, 그 차이를 만드는 경우 확실하지 "* - 변화를 가져옵니다. 비활성화 된 컨트롤에 대한 툴팁은 표시되지 않습니다. 그러나 [해결 방법] (http://stackoverflow.com/q/7887817/1997232)을 사용할 수 있습니다. – Sinatr
대신 이벤트 핸들러없이 패널의 툴팁을 설정해보십시오. 패널 위로 마우스를 움직이면 (아직 레이블 위를 지나지 않았다면) 볼 수 있습니다. – Sinatr
작동하지 않는 것 같습니다 (편집 된 코드 참조). – NickV987