如图,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如何取得一个区域的所有控件对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)