有人可以解决我似乎无法解决的问题。我已经在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
答案 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位版本