小编d.w*_*ing的帖子

韩国电脑上的扩展错误

情况

我们正在向全世界的客户销售Windows Forms应用程序.我们在欧洲和美国的几个国家安装了它.没问题.上周我们在韩国安装了我们的软件并认识到了一种奇怪的行为......

问题仅发生在客户办公室PC上,而是发生在所有客户办公室PC上.有些有Windows 7 Professional K,有些有Windows XP.

客户购买了一台安装了Windows 7旗舰版的新PC.在这台电脑上,没有问题.

功能

我们的应用程序中的所有元素都源自提供特殊功能的"父级用户控件".其中一个功能是"自动调整和定位".当父级更改大小时,将调用所有子级的此函数.

当我们的应用程序启动时,我们存储"ClientSize":

InitializeComponent();
this.m_actSize = this.ClientSize;
Run Code Online (Sandbox Code Playgroud)

每当应用程序的大小发生变化时,我们计算缩放因子并用它引发一个事件:

void myFormSizeChanged(object sender, EventArgs e)
{
    this.m_xFactor = (float)this.ClientSize.Width / (float)this.m_actSize.Width;
    this.m_yFactor = (float)this.ClientSize.Height / (float)this.m_actSize.Height;
    if (this.m_MyOnResize != null)
        this.m_MyOnResize(this.m_xFactor, this.m_yFactor);
}
Run Code Online (Sandbox Code Playgroud)

现在,每个订阅的孩子都会执行自动调整大小和定位:

void MyParentUserControl_MyOnResize(float v_xFactor, float v_yFactor)

    {
        this.Location = new Point((int)(this.m_actLocation.X * v_xFactor), (int)(this.m_actLocation.Y * v_yFactor));
        this.Size = new Size((int)(this.m_actSize.Width * v_xFactor), (int)(this.m_actSize.Height * v_yFactor));
    }
Run Code Online (Sandbox Code Playgroud)

问题

当我们的应用程序在韩国的客户PC上启动时,宽度约为20%.这意味着,右侧是一个只有灰色背景的区域.高度约为10%至高.这意味着,位于应用程序底部的项目位于屏幕之外. 在此输入图像描述

修复

首先,我们认为问题来自Windows DPI设置.当我将笔记本电脑设置为125%时,它看起来很相似.但是,客户PC都设置为100%......

然后,我们考虑了屏幕分辨率.所有都有不同的,有些和我的笔记本电脑一样......

所有都有不同的grafic适配器......

都有.NET 4.5.1 ......

解决问题的唯一方法是一个奇怪的方法:

this.AutoScaleDimensions = …
Run Code Online (Sandbox Code Playgroud)

c# winforms

9
推荐指数
1
解决办法
479
查看次数

比较两行并标识值不同的列

情况

我们有一个应用程序,我们将机器设置存储在SQL表中.当用户更改机器的参数时,我们创建一个"修订版",这意味着我们在表中插入一行.该表有大约200 .在我们的应用程序中,用户可以查看每个修订版.

问题

我们想要突出显示自上次修订以来已更改的参数.

问题

是否有一种只使用SQL的方法来获取两行之间差异的列名?

一个例子

ID | p_x | p_y | p_z
--------------------
11 | xxx | yyy | zzz

12 | xxy | yyy | zzy
Run Code Online (Sandbox Code Playgroud)

查询应返回p_xp_z.

编辑

该表有200列,而不是行...

我的方式

我的目的是为这个问题找到一个"一行SQL语句".

我在下面的答案中看到,它在SQL中更重要.由于没有针对此问题的简短的SQL解决方案,因此在我们的软件(c#)的后端解决它当然要容易得多!

但由于这不是我的问题的真正"答案",我不会将其标记为已回答.

谢谢您的帮助.

sql-server sql-server-2008

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

sql-server ×1

sql-server-2008 ×1

winforms ×1