我在應用程序中創建了一個方法,該方法在運行時創建了多個面板。在創建面板的循環中,我創建了一個面板MouseMove事件,該事件根據創建的任意一個面板中鼠標指針的位置來控制工具提示的位置。該名稱在當前上下文中不存在
我收到這個錯誤,當我編譯時,我明白pnlOverview
是在不同的構造函數中創建的,但對於我的生活,我無法理解如何從事件處理函數內到達pnlOverview
實例。
任何人都可以指向正確的方向嗎?
這裏只是我認爲你需要看看代碼:
public void CreatePanels()
{
int PanelPosX = 50;
int PanelPosY = 500;
int LabelPosX = 10;
int LabelPosY = 10;
for (int i = 0; i < (Convert.ToInt32(txtNoOfPanels.Text)); i++)
{
// Create a new panel, each with a unique label identifying the inspector
Panel pnlOverview = new Panel();
pnlOverview.Name = "InspectorPanel" + (i + 1).ToString();
pnlOverview.Text = "Inspector Panel " + (i+1).ToString();
pnlOverview.Location = new Point(PanelPosX, PanelPosY);
pnlOverview.Size = new Size(1200, 180);
pnlOverview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
Controls.Add(pnlOverview);
pnlOverview.Paint += new PaintEventHandler(newPanelPaint);
// Create a MouseMove event for each panel created
pnlOverview.MouseMove += new MouseEventHandler(pnlOverview_OnMouseMove);
Label lblInspectorName = new Label();
lblInspectorName.Name = "InspectorName" + (i+1).ToString();
lblInspectorName.Text = " Inspector " + (i+1).ToString();
lblInspectorName.Width = 100;
lblInspectorName.Height = 13;
lblInspectorName.Location = new Point(LabelPosX, LabelPosY);
lblInspectorName.Size = new Size(82, 13);
pnlOverview.Controls.Add(lblInspectorName);
PanelPosY += 190;
}
return;
}
// Show a tooltip
public void pnlOverview_OnMouseMove(object sender, MouseEventArgs e)
{
toolTip1.Show("HELLO", this, new Point(pnlOverview.Left + e.X + 1, pnlOverview.Top + e.Y + 1), int.MaxValue);
}
哪種語言/哪種編譯器? –
@Dan Pichelman:這是C#。但是,您使用的是什麼版本的Visual Studio? – izogfif
看起來像C#給我,但這顯然是一個假設。如果這是真的,我會建議使用FlowLayoutPanel而不是嘗試手動定位元素。 –