zoukankan      html  css  js  c++  java
  • C# 窗体桌面定位问题 转 武胜


    [问题]
    我写了一段C#窗体代码,运行时没有按我指定的桌面位置显示。不知道是为什么?这段代码如下:

    public class MyForm : Form
    {
      MyForm()
      {
        Text = "Why doesn't this form go where I want it to go?" ;
        DesktopLocation = new System.Drawing.Point (500, 500) ;
      }
      static void Main()
      {
        Run(new MyForm());
      }
    }

    窗体中的标题栏显示正常,但DesktopLocation好象没起作用。

    [回答]
    DesktopLocation是可以随心所欲地设置的,但MS .NET Framework并不会注意你的设置,除非象下面这样同时设置 StartPosition:

    StartPosition = Form.StartPosition.Manual;

        顾名思意,不难琢磨出这行代码是干什么用的,Form.StartPosition 告诉 .NET Framework 从哪里开始窗体显示。可能的值有:CenterParent、CenterScreen、Manual、WindowsDefaultBounds 和 WindowsDefaultLocation。StartPosition缺省为WindowsDefaultLocation,CreateWindow 等价于 CW_USEDEFAULT。
        有人肯定会问:Location 和 DesktopLocation 之间有什么区别啊?答案是:Location 是相对于屏幕而言的,而 DesktopLocation 是相对于桌面工作区——也就是除任务栏以外的屏幕区域。要是这样的话,就得考虑某个用户哪根神经不对劲,将任务栏拉宽充满整个屏幕。
        如果发生这种事情,设置 Form.Location = (0,0) 导致部分窗体被隐藏,而 DesktopLocation = (0,0) 使一切都要重新考虑,DesktopLocation 也可用于多监视器系统。(如果你曾针对墙式等离子屏幕编过程序,就会清楚)。此外,如果你想在Visual Studio 的属性窗口中找到 DesktopLocation 设置——那是白费劲,找不到的,它只能通过编码来设置。真是龌龊!

  • 相关阅读:
    XSD文件生成C#VO实体类
    WPF根据Oracle数据库的表,生成CS文件小工具
    【求助】WPF 在XP下 有的Textbox光标会消失
    【转】oracle中in和exists的区别
    Spire.DOC生成表格测试
    【转】C#调用Windows图片和传真查看器打开图片
    WPF MVVM下做发送短信小按钮
    SignalR Progress
    C# readonly
    Settings.settings
  • 原文地址:https://www.cnblogs.com/zeroone/p/1719169.html
Copyright © 2011-2022 走看看