OleDb / OleDbConnection调整大小形式(错误?)

时间:2015-02-25 21:22:06

标签: c#

有人可以解决我似乎无法解决的问题。我已经在VSE2012 express for desktop和VSE2013 express for Desktop中创建了一个C#表单,我将表单保留为默认大小并再次添加一个按钮完全默认。该按钮被编码为打开和关闭数据库连接。

单击按钮时,表单及其内容全部缩小约25%,我已经尝试了所有默认设置,没有任何乐趣。我甚至用访问db文件替换了一个文本文件,它仍然会发生。在窗口7和8.1

上尝试了这一点

Form1.cs(所有代码)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApplication2
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        OleDbConnection myConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;"
    + @"Data Source="
    + @"..\..\..\x.accdb");



        private void button1_Click(object sender, EventArgs e)
        {
            try
            {

                myConn.Open();
                myConn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

Uneditted Form1.Designer.cs

#region Windows Form Designer generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
    this.button1 = new System.Windows.Forms.Button();
    this.SuspendLayout();
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(106, 138);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(75, 23);
    this.button1.TabIndex = 0;
    this.button1.Text = "button1";
    this.button1.UseVisualStyleBackColor = true;
    this.button1.Click += new System.EventHandler(this.button1_Click);
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(282, 253);
    this.Controls.Add(this.button1);
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false);

}

#endregion

1 个答案:

答案 0 :(得分:4)

这必须是OleDb或.NET错误。它只能在非常高分辨率的屏幕上显示,并且调用OleDb.OleDbConnection.Open的简单操作会导致表单忽略任何DPI或字体缩放。

我试过移动调用将OleDb打开到一个单独的类,也打开一个单独的DLL但结果总是一样。

用户在YouTube上发布了一个示例:https://www.youtube.com/watch?v=zdby6gmbX_4

我想我们只需要向MS报告

*****找到了解决问题的方法

如果卸载“Microsoft Access数据库引擎2010可再发行组件”32位版本,然后安装64位版本。然后卸载64位版本,然后重新安装它现在可以使用的32位版本