- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
每当我构建以下程序时,Form1
的大小都会缩小 20。(在某些情况下,我需要对表单进行更改,例如将 someLaggyControl1
移动到几个像素,但并非总是如此。这很奇怪。)表单使用 MainMenu
对于菜单,不是 MenuStrip
.是的,MainMenu
较旧,不推荐使用,但出于多种原因我需要使用它,其中之一是 radio-button items .更改为 MenuStrip
对我来说不是有效的解决方案。
这是重现此问题所需的代码:
namespace MainMenuMCVE
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#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.components = new System.ComponentModel.Container();
this.MainMenu1 = new System.Windows.Forms.MainMenu(this.components);
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem7 = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.menuItem6 = new System.Windows.Forms.MenuItem();
this.someLaggyControl1 = new MainMenuMCVE.SomeLaggyControl();
this.SuspendLayout();
//
// MainMenu1
//
this.MainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1,
this.menuItem5});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem2,
this.menuItem3,
this.menuItem4});
this.menuItem1.Text = "Example";
//
// menuItem2
//
this.menuItem2.Index = 0;
this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem7,
this.menuItem8});
this.menuItem2.Text = "Something";
//
// menuItem7
//
this.menuItem7.Index = 0;
this.menuItem7.Text = "Another thing";
//
// menuItem8
//
this.menuItem8.Index = 1;
this.menuItem8.Text = "Ect";
//
// menuItem3
//
this.menuItem3.Index = 1;
this.menuItem3.Text = "Something else";
//
// menuItem4
//
this.menuItem4.Index = 2;
this.menuItem4.Text = "A third thing";
//
// menuItem5
//
this.menuItem5.Index = 1;
this.menuItem5.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem6});
this.menuItem5.Text = "Example 2";
//
// menuItem6
//
this.menuItem6.Index = 0;
this.menuItem6.Text = "Blah";
//
// someLaggyControl1
//
this.someLaggyControl1.Laggyness = 1000;
this.someLaggyControl1.Location = new System.Drawing.Point(12, 81);
this.someLaggyControl1.Name = "someLaggyControl1";
this.someLaggyControl1.Size = new System.Drawing.Size(268, 23);
this.someLaggyControl1.TabIndex = 0;
this.someLaggyControl1.Text = "someLaggyControl1";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 253);
this.Controls.Add(this.someLaggyControl1);
this.Menu = this.MainMenu1;
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.MainMenu MainMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.Windows.Forms.MenuItem menuItem4;
private System.Windows.Forms.MenuItem menuItem5;
private System.Windows.Forms.MenuItem menuItem6;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.MenuItem menuItem8;
private SomeLaggyControl someLaggyControl1;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace MainMenuMCVE
{
class SomeLaggyControl : Control
{
public int Laggyness { get; set; }
protected override void OnPaint(PaintEventArgs e) {
e.Graphics.DrawString("A laggy control that takes " + Laggyness + " ms to render", this.Font, Brushes.Black, 0, 0);
System.Threading.Thread.Sleep(Laggyness);
base.OnPaint(e);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MainMenuMCVE
{
public partial class Form1 : Form
{
public Form1() {
InitializeComponent();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace MainMenuMCVE
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
它的关键部分是一个表单 Form1
,它包含一个 MainMenu
,其中有几个 MenuItem
s,其中一个有几个子 MenuItem
。它还包含 SomeLaggyControl
,(当然)用作示例。 SomeLaggyControl
需要 1 秒来呈现并用于模拟一堆控件,这样示例就不会变得困惑。
每当我运行该程序时,Form1
的大小都会缩小。我可能需要更改表单以使其缩小(例如移动 someLaggyControl1
左右),或者我可能不需要;我相信这必须处理设计人员生成新代码的问题。无论如何,这会导致形状缩小。
这里有一些图片展示了这一点:
The original appearance of the form, before building, with a size of 300 by 300.
After the first rebuild. It's not obvious, but the size is now 300 by 280. Check the scroll bar.
After a second rebuild. The form is now 300 by 260, and it's more obvious.
After a third rebuild. Now that it's 300 by 240, the form is getting small.
After several more rebuilds, I am left with this pleasant piece of easy to use 300 by 47 form. The form is unable to shrink anymore (though it tries).
我的主要问题是:如何阻止我的表单调整大小(除了切换到 MenuStrip
)?我也对为什么会发生这种情况感兴趣,但这不是太重要。
最佳答案
当使用设计器附加到其 Menu 属性时,旧菜单系统中有一些内置的东西会根据菜单系统的高度增加窗体的大小。
要解决这个问题,请进入 Designer.cs 文件,注释掉这一行:
// this.Menu = this.MainMenu1;
然后,在 OnLoad 覆盖中,重新附加它:
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
this.Menu = MainMenu1;
}
菜单在设计器中不可见,除非您从表单区域下方的组件托盘中选择它。您会注意到菜单在表单上变得可见,并且当菜单可见时表单的大小将暂时增加。这似乎可以防止您的表单始终自行调整大小。
关于c# - 每次运行项目时,带有 MainMenu 的表单都会缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461091/
我想使用 li 和 ul 制作一个多级下拉列表,以便显示我博客中按年和月排序的所有文章。我希望我的下拉菜单看起来像 Google Blogspot 下拉菜单: 这是我的 CSS 和 HTML 代码 u
我在 Win 7 64 机器上将 CodeBlocks 与 gcc 4.7.2 和 gmp 5.0.5 结合使用。开始使用 gmpxx 后,我看到一个奇怪的段错误,它不会出现在 +、- 等运算符中,但
我正在使用 tern 为使用 CodeMirror 运行的窗口提供一些增强的智能感知,它工作正常,但我遇到了一个问题,我想添加一些自定义“types”,可以这么说,这样下拉列表中它们旁边就有图标了。我
我正在尝试让我的 PC 成为 Android 2.3.4 设备的 USB 主机,以便能够在不需要实际“附件”的情况下开发 API。为此,我需要将 PC 设置为 USB 主机和“设备”(在我的例子中是运
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我在设置服务器方面几乎是个新手,但遇到了一个问题。我有一个 Ubuntu 16.04 VPS 并安装了 Apache2 和 Tomcat7。我正在为 SSL 使用 LetsEncrypt 和 Cert
我在一个基于谷歌地图的项目上工作了超过 6 个月。我使用的是 Google Maps API V1 及其开发人员 API key 。当我尝试发布应用程序时,我了解到 Google API V1 已被弃
我是 Python 的新手,所以如果我对一些简单的事情感到困惑,请原谅。 我有一个这样的对象: class myObject(object): def __init__(self):
这个问题已经有答案了: How can I access object properties containing special characters? (2 个回答) 已关闭 9 年前。 我正在尝
我有下面的 CSS。我想要的是一种流体/液体(因为缺乏正确的术语)css。我正在为移动设备开发,当我改变模式时 从纵向 View 到陆地 View ,我希望它流畅。现在的图像 在陆地 View 中效
我正在尝试使用可以接受参数的缓存属性装饰器。 我查看了这个实现:http://www.daniweb.com/software-development/python/code/217241/a-cac
这个问题在这里已经有了答案: Understanding slicing (36 个答案) 关闭 6 年前。 以a = [1,2,3,4,5]为例。根据我的直觉,我认为 a[::-1] 与 a[0:
mysqldump -t -u root -p mytestdb mytable --where=datetime LIKE '2014-09%' 这就是我正在做的事情,它会返回: mysqldum
我正在制作销售税计算器,除了总支付金额部分外,其他一切都正常。在我的程序中,我希望能够输入一个数字并获得该项目的税额我还希望能够获得支付的总金额,包括交易中的税金。到目前为止,我编写的代码完成了所有这
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我是否必须进行任何额外的设置才能让 apache-airflow 在任务失败时向我发送电子邮件。我的配置文件中有以下内容(与默认值保持不变): [email] email_backend = airf
这个问题在这里已经有了答案: What does the $ symbol do in VBA? (5 个回答) 3年前关闭。 使用返回字符串(如 Left)的内置函数有什么区别吗?或使用与 $ 相同
我有一个用VB6编写的应用程序,我需要使用一个用.NET编写的库。有什么方法可以在我的应用程序上使用该库吗? 谢谢 最佳答案 这取决于。您可以控制.NET库吗? 如果是这样,则可以修改您的库,以便可以
当我创建一个以 ^ 开头的类方法时,我尝试调用它,它给了我一个错误。 class C { method ^test () { "Hi" } } dd C.new.test; Too m
我已经使用 bower 安装了 angularjs 和 materialjs。 凉亭安装 Angular Material 并将“ngMaterial”注入(inject)我的应用程序,但出现此错误。
我是一名优秀的程序员,十分优秀!