比如:
private void Form1_Load(object sender, EventArgs e)
{
Point point1 = new Point(0,0);
}
private void button1_Paint(object sender, PaintEventArgs e)
{
Point point2 = new Point(0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
Point point3 = new Point(0, 0);
}请问,上面的point1、point2、point3的坐标哪些是屏幕坐标、哪些是工作区坐标
同样的代码,什么时候是屏幕坐标、什么时候是工作区坐标?
MSDN上没说呢?
private void Form1_Load(object sender, EventArgs e)
{
Point point1 = new Point(0,0);
}
private void button1_Paint(object sender, PaintEventArgs e)
{
Point point2 = new Point(0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
Point point3 = new Point(0, 0);
}请问,上面的point1、point2、point3的坐标哪些是屏幕坐标、哪些是工作区坐标
同样的代码,什么时候是屏幕坐标、什么时候是工作区坐标?
MSDN上没说呢?
解决方案 »
- 如何定义一个表示矩形的类,可以计算矩形的面积?菜鸟求助。。。
- 未能找到元数据文件 .dll
- Client中有两个按钮,Server中也有两个。希望Client窗体中按button1将数据发出去,Server按Button1接收。第二个按钮相反。代码错哪
- 关于类的一些问题
- 又是刚才的textBox的DoubleClick问题。
- 在DataGridView上点右键弹出快捷菜单后,如何得到被点击的是DataGridView的那一列呢?
- 一个高分的问题
- Excel图表怎么加入
- WinForm调用页面
- TCP/IP包乱的问题
- 小弟初学者,有个疑问。。还望指点。。
- 有两个Panel,如何获得不是某个Panel的Panel
Point 本身是没办法表示是屏幕坐标还是工作区坐标,但使用是有区别,如把次Point 赋值给form或者其他控件则是工作区坐标,也就是是说,大部分的控件的属性都是工作区坐标
MouseClick(sender, MouseClickEvent e)
{
//相对于控件的坐标
Point p = new Point(e.x,e.y);
}
Form_paint(object sender, PaintEventArgs e)
{
//相对于Form坐标
e.Graphics.DrawLine(new Point(0, 0),new Point(100,100);
//相对于屏幕坐标
Point p = System.Windows.Forms.Control.MousePosition;
//转化为相对于Form的坐标
Point p2 = this.PointToClient(p);
//转化为相对Button的坐标
Point p3 = this.btn1.PointToClient(p);}
比方说你需要移动某个控件的位置,如一个Button,那这个肯定是相对整个窗口的坐标,
再比方说你需要在某个控件上画图,那肯定是这个控件自身的坐标。
好,窗体坐标,就暂时不说
说说工作区坐标(包括窗口坐标)
我就想问,比如,窗口中,有button、label
那同样是一句代码:Point point1 = new Point();
point的坐标,什么时候是对于窗口的坐标,什么时候是对于button的坐标,什么时候是相对于label的坐标
有什么游戏规则吗?就如问题中的三个点一样
做个验证的例子:你只可以这个,生成一个graphic.
在上边画个矩形,找一下位置,就知道坐标系统 的情况 了。Graphics g = this.CreateGRaphic();g.Rectangle(0,0,100,100);
....
PointTo..
ScrentTo...
LpToDP
DpToLO
private void button1_Paint(object sender, PaintEventArgs e)
{
Point point2 = new Point(0, 0);
}point2的坐标是相对于form而言,还是button1而言的?为什么?
张三 李四 王五
不告诉他们的出生地,却要你说出他们的原籍一样我只能告诉 对象的鼠标事件所产生的坐标都是该对象的坐标
用 Control.PointToScreen 可转换为屏幕坐标三种常用的直接获取屏幕坐标的方法:
System.Windows.Forms.Form.MousePosition
System.Windows.Forms.Cursor.Position
WinAPI GetCursorPos(ref System.Drawing.Point pt)
然后通过 Control.PointToClient 可转换为控件坐标
都不是,这是你自己定义的一个 Point,只是一个单纯的结构对象。
将其应用到哪个对象 它就属于哪个对象如果你问的是 button1_MouseMove(object sender, MouseEventArgs e) 事件中的
Point point2 = e.Location;
我倒是可以回答你这个 point2 属于 button1
private void button1_Paint(object sender, PaintEventArgs e)
{
Point point2 = new Point(0, 0);
}point2的坐标还不能确定是相对于谁的,是吗?这个point2已经new出来了,那就说明已经创建了,不可能还不知道是相对于谁的坐标吧?
没有给 Point 指定容器前 谁能回答你的问题呢,如果有答案,那必定是错误的请问 奥巴马 是那个国家的? 如果你说是美国的
那我告诉你 我的狗也叫奥巴马
Label labe11 = new Label();
labe11.Location = point1;
labe11.BackColor = Color.Red;
this.Controls.Add(labe11);
labe11 = new Label();
labe11.Location = point1;
labe11.BackColor = Color.Red;
panel1.Controls.Add(labe11);
Point1的坐标值的参照物不一样,应该怎么用比较规范的语言来归纳一下规则呢?
int[] nums = new int[10];Random rd = new Random(); // 随机数for (int i = 0; i < nums.Length; i++)
{
nums[i] = rd.Next(100); // 赋值
}// 输出原始数组
Console.WriteLine(string.Join(" ", nums));// 计时
Stopwatch time = new Stopwatch();
time.Start();for (int i = 0; i < nums.Length; i++)
{
int Max = i; for (int j = i + 1; j < nums.Length; j++)
{
if (nums[j] > nums[Max]) Max = j;
// 原先 还没有取得最大值就开始交换了
} int temp = nums[Max];
nums[Max] = nums[i];
nums[i] = temp;
}time.Stop();Console.WriteLine(string.Join(" ", nums));
Console.WriteLine("选择排序共计运行:" + time.Elapsed + "秒");