代码之家  ›  专栏  ›  技术社区  ›  wondra

滑动滚动显示全屏WinForms应用程序中的桌面

  •  1
  • wondra  · 技术社区  · 7 年前

    考虑使用中所述方法的全屏C#WinForms应用程序 WinForms fullscreen question


    最小示例:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
            var tb = new TextBox() { Multiline = true, 
                                     ScrollBars = ScrollBars.Vertical, 
                                     Dock = DockStyle.Fill, 
                                     Text = string.Concat(Enumerable.Repeat("foo! ", 10000)) };
            Controls.Add(tb);
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   wondra    7 年前

    在评论中相似的答案更少 question 重申一下,设置 HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch Bouncing 0x0 将“修复”问题。幸运的是,这是每个用户都需要的设置(不需要管理员权限/帐户)。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
            var tb = new TextBox() { Multiline = true, ScrollBars = ScrollBars.Vertical, Dock = DockStyle.Fill, Text = string.Concat(Enumerable.Repeat("foo! ", 10000)) };
            Controls.Add(tb);
            DisableBouncing();
            FormClosed += (s, e) => RestoreBouncing();//for brevity just on Close
        }
    
        int? defaultSetting = null;
        private void DisableBouncing()
        {
            using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Wisp\Touch", true))
            {
                defaultSetting = key.GetValue(@"Bouncing", null) as int?;
                key.SetValue(@"Bouncing", 0x00000000, RegistryValueKind.DWord);
            }
        }
    
        private void RestoreBouncing()
        {
            using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Wisp\Touch", true))
            {
                key.SetValue(@"Bouncing", defaultSetting ?? 0, RegistryValueKind.DWord);
            }
        }
    }