Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体在“表格布局”面板中重新排列元素_C#_.net_Winforms_Visual Studio - Fatal编程技术网

C# Windows窗体在“表格布局”面板中重新排列元素

C# Windows窗体在“表格布局”面板中重新排列元素,c#,.net,winforms,visual-studio,C#,.net,Winforms,Visual Studio,我正在用windows窗体作为GUI在.net中开发POS系统。我的应用程序中有一个窗口,我面临一个非常奇怪的问题 (注意:该应用程序是为.NET4框架编译的,作为一个windows窗体项目。我使用表布局来排列窗体中的所有元素) 下面是VisualStudio中表单的屏幕截图 以下是我的系统(Windows 8 Pro、DELL全高清显示器)中的屏幕截图 现在我正在构建可执行文件和DLL,并将它们复制到我父亲的系统(Windows71440x900监视器)中。应用程序成功运行,但输出如下所示

我正在用windows窗体作为GUI在.net中开发POS系统。我的应用程序中有一个窗口,我面临一个非常奇怪的问题

(注意:该应用程序是为.NET4框架编译的,作为一个windows窗体项目。我使用表布局来排列窗体中的所有元素)

下面是VisualStudio中表单的屏幕截图

以下是我的系统(Windows 8 Pro、DELL全高清显示器)中的屏幕截图

现在我正在构建可执行文件和DLL,并将它们复制到我父亲的系统(Windows71440x900监视器)中。应用程序成功运行,但输出如下所示

有两件事发生了变化

  • 开始日期和结束日期标签以及日历都已交换(我也进行了功能测试。如果出现错误,则开始日期不能晚于结束日期。我已对此进行了检查,日历也已交换。)

  • 显示日期的格式已更改

  • 注意:我在其他窗口也有这样的小问题


    有人遇到过这样的问题吗?

    我找到了解决办法

    windows设计器生成的代码以错误的方式添加到tablelayoutpanel对象中的控件

    windows designer面板正在将控件添加到tablelayoutpanel的同一单元格中

    例:代码不正确

    this.tableLayoutPanel5.Controls.Add(this.tbInvoice, 0, 0);
    this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0);
    
    this.tableLayoutPanel5.Controls.Add(this.tbInvoice, 1, 0);
    this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0);
    
    正确代码

    this.tableLayoutPanel5.Controls.Add(this.tbInvoice, 0, 0);
    this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0);
    
    this.tableLayoutPanel5.Controls.Add(this.tbInvoice, 1, 0);
    this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0);
    

    解决方案:通过移除控件或将其移动到单独的表中,然后将其移回,重新排列面板中的控件。

    日期的格式很可能是由于本地化设置造成的(也许你父亲的电脑更喜欢短月份的名字而不是数字-请参见控制面板中的
    地区和语言
    )。至于日历…这更有趣。我建议在那台机器上安装VS,并在设计器代码上设置一个断点,用于定位元素。如果这太麻烦,请修改你的应用程序,将尽可能多的信息记录到文件中,然后比较两台机器之间的文件。SomeOne也有此问题@Basic我已经解决了日期问题。只是自己格式化了字符串,而不是依赖于系统相关的长日期表示。您的控件是否设置为
    Dock=Fill
    ?如果是这种情况,请尝试删除所有锚。测试2-如果使用
    Fill
    ,请停止使用它并设置所有锚,然后使用
    填充来清除边界。