我有一些使用 DrawString 绘制的字符串
for (int j = 0; j < dt.Rows.Count; j++)
{
e.Graphics.DrawString(Convert.ToString(dt.Rows[j]["ID"]), drawFont, drawBrush, new Point(Convert.ToInt32(dt.Rows[j]["XCord"]), Convert.ToInt32(dt.Rows[j]["YCord"])));
}
有没有办法为每个拉绳创建一个 onclick 事件?当您单击拉绳时,我希望创建一个新表单。谢谢!
最佳答案
处理容器的MouseClick
事件并枚举行以找出文本的“矩形”并查看鼠标位置是否在其中:
void panel1_MouseClick(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
foreach (DataRow dr in dt.Rows) {
Point p = new Point(Convert.ToInt32(dr["XCord"]), Convert.ToInt32(dr["YCord"]));
Size s = TextRenderer.MeasureText(dr["ID"].ToString(), panel1.Font);
if (new Rectangle(p, s).Contains(e.Location)) {
MessageBox.Show("Clicked on " + dr["ID"].ToString());
}
}
}
}
关于c# - 抽绳 onclick 方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11472392/