+1 说的对。因为你在xp 上的控件的宽度是根据分辨率来计算出来的。比如说你所说的大小本来是280*280,那这个尺寸在xp上可能是分辨率的n%,在win7上可能就是分辨率的m%,那就可以是373*350。除了宽度这些变化外。还有其他变化的,比如样子也会改变、颜色等。
+1 说的对。因为你在xp 上的控件的宽度是根据分辨率来计算出来的。比如说你所说的大小本来是280*280,那这个尺寸在xp上可能是分辨率的n%,在win7上可能就是分辨率的m%,那就可以是373*350。除了宽度这些变化外。还有其他变化的,比如样子也会改变、颜色等。
后原封不动不动地挪到win 7(分辨率为1366*768)笔记本电脑上运行,图片变大了。如下图。但是程序的代码并没有变。 //
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.White;
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Location = new System.Drawing.Point(12, 12);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(280, 280);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
+1 说的对。因为你在xp 上的控件的宽度是根据分辨率来计算出来的。比如说你所说的大小本来是280*280,那这个尺寸在xp上可能是分辨率的n%,在win7上可能就是分辨率的m%,那就可以是373*350。除了宽度这些变化外。还有其他变化的,比如样子也会改变、颜色等。
那怎么办啊!?我辛辛苦苦做出来的程序,不能因为换了一台电脑就变得面目全非了?
像素是多少就是多少,不会变的
后来我又在win 7的笔记本电脑上从新建了一个完全一样的项目,编译运行如下图。然后我又把生成的exe文件拿到xp系统的宽屏台式机上运行,分辨率为1440*900,图片又变小了。如下图。我感觉不是分辨率的问题,因为在正屏与宽屏的电脑上运行(都是xp系统),都是一样的。
将窗体大小基于点(point),改成基于像素(pixel)
try...
//Form构造函数中
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));
在WIN7上运行如下图在XP上运行如下图