WinForm中X与Y的坐标位置怎么判断的 (X与Y的正、负分别代表,控件是怎么移动的)

WinForm中X与Y的坐标位置怎么判断的 (X与Y的正、负分别代表,控件是怎么移动的),第1张

如图,form的窗口大小为300300,以像素为单位计算

form坐上角坐标:0,0,右下角为300,300

button1坐标:-30,32  (x为负值,所以跑到左边去了)

button2坐标:86,-8  (y为负值,所以跑到上面去了)

button3坐标:86,84

private void button1_Click(object sender, EventArgs e)

{

int x =(int)thisnumericUpDown1Value;

Point point = thisdataGridView1Location;

thisdataGridView1Location = new Point(x, pointY);// x y可以根据别的控件的值取得

}

设pictureBox1为父控件 pictureBox2为子控件 //设置pictureBox1可以有子控件 thispictureBox1HasChildren = true; //设置pictureBox1在窗体中的位置 thispictureBox1Location = new SystemDrawingPoint(38, 67); thispictureBox1Size = new SystemDrawingSize(236, 196); //设置pictureBox2的父控件为pictureBox1 thispictureBox2Parent = thispictureBox1; //检索指定位置的子控件 //GetChildAtPoint获取制定位置的子控件 thispictureBox2Parent = thispictureBox1; PictureBox[] ps = new PictureBox[10]; int i = 0; for (int x = 0; x < thispictureBox1Width; x++) { for (int y = 0; y < thispictureBox1Height; y++) { if(thispictureBox1GetChildAtPoint(new Point(x,y)) != null) { ps[i] = new PictureBox(); ps[i] = (PictureBoxthispictureBox1GetChildAtPoint(new Point(x, y)); i++; } } }

简单给你说明一下

你要先理解容器的概念,若要在窗体里做,那么最大的容器就是窗体Form,假设Form名为Form1,你要在此窗体的(100,50)坐标位置生成一个Label名为lbl,宽度为100,高度为10的Label控件,代码如下:(我对每行代码都做了逐一注释)

Label lbl=new Label();//创建一下名为lbl的Label控件

lblWidth=100;//设置lbl的宽度

lblHeight=50;//设置lbl的高度

lblLocation=new SystemDrawingPoint(100,10);//设置lbl的起始位置

Form1Controladd(lbl);//将lbl装入Form1中

想要深入了解WinForm对容器中的控件是怎样实现布置的,你可以建立Form窗体,然后向窗体中拖放入你想要了解的控件,然后在该窗体为名的后缀为Designercs的文件中,可以查看到该窗体中所有控件的定义及布局属性的设定。

C#Control里没有ID这个属性只有Name属性 其实就是ID的意思 你可以根据Name属性找到这个控件 代码如下 private void button1_Click(object sender, EventArgs e)

{

string name = "label1";

Control control = null;

foreach (Control item in thisControls)

{

control = GetControl(name, item);

if (control != null)

{

MessageBoxShow("类型是:" + controlGetType()ToString() + "\r\n" +

"坐标是:" + controlLocationToString());

break;

}

}

if (control == null)

{

MessageBoxShow("没有找到“"+name+"”");

}

}

private Control GetControl(string name, Control parent)

{

foreach (Control Item in parentControls)

{

if (ItemName == name)

{

return Item;

}

else

{

Control control = GetControl(name, Item);

if (control != null)

{

return control;

}

}

}

return null;

}

假如你的窗体上有两个控件一个Label 和 一个 Button

name分别为 lblTest btnTest

你可以这样试试:

int lblIndex = thisControlsIndexOf(lblTest);

int btnIndex = thisControlsIndexOf(btnTest);

这样就可以获取到Label 和 Button这两个控件的索引了。

以上就是关于WinForm中X与Y的坐标位置怎么判断的 (X与Y的正、负分别代表,控件是怎么移动的)全部的内容,包括:WinForm中X与Y的坐标位置怎么判断的 (X与Y的正、负分别代表,控件是怎么移动的)、winform如何通过输入坐标改变控件坐标、c# winform如何取得一个区域的所有控件对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9568906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存