Tag: winforms

将WindowState设置为Maximized会导致窗口显示得太早

我读到Load事件应该在创建窗口句柄之后但在窗口实际可见之前触发。 在大多数情况下,这似乎是真的。 但是,我发现当我创建一个WindowState属性设置为FormWindowState.Maximized (通过VS设计器,或者在构造函数中以编程方式),窗口在Load事件触发之前变得可见。 例如: using System; using System.Windows.Forms; namespace MyApplication { public partial class MyForm : Form { public MyForm() { InitializeComponent(); WindowState = FormWindowState.Maximized; } protected override void OnLoad(EventArgs e) { MessageBox.Show(“OnLoad – notice that the window is already visible”); base.OnLoad(e); } } } 这反过来导致显示的表单闪烁很多,同时在窗口可见时调整其控件(在Form.Load事件期间Form.Load )的大小。 如果我没有将状态设置为最大化,那么所有resize都会在窗口显示之前完成(这是我所期望的)。 我可以推迟设置WindowState直到Load事件结束,但是仍然会导致大量闪烁,因为窗口变得可见,然后所有控件都会resize。 有什么想法吗?

关闭打开资源管理器窗口而不终止explorer.exe

我试过搜索,但没有什么能满足我的要求。 我不希望 explorer.exe被终止或重新启动。 我只想关闭任何打开的资源管理器窗口。

在WinForm C#上捕获KeyUp事件

我尝试在System.Windows.Forms上捕获F5,因为我写道: partial class MainForm { (…) this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp); (…) } public partial class MainForm : Form { (…) private void MainForm_KeyUp(object sender, KeyEventArgs e) { Log(“MainForm_KeyUp”); if (e.KeyCode == Keys.F5) { RefreshStuff(); } } } 但我的事件捕捉看起来不起作用。 你知道如何在System.Windows.Forms上cactch EventKey吗?

Winforms:带对接的FlowLayoutPanel

这是winforms。 我正在创建一个User控件,它基本上是一个充满其他用户控件的FlowlayoutControl。 我需要添加的每个控件都停靠在上一个控件的顶部(从左到右)。 不幸的是,看起来flowlayoutcontrol忽略了任何对接属性。 有没有办法将控件停靠在那里? 我需要它从左到右填充项目,但项目应该像列表视图一样布局。 真的没有我能提供的代码,因为它是一个确定采取什么方法的事实。

在C#中返回Windows窗体之间的结果

我有两个Windows窗体(MyApp,Generator),我需要从MyApp调用Generator Form gen = new Generator(); gen.Show(); string result = gen.IDontKnowWhatToDoHere(); 我的Generator.cs表单有三个TextBox和一个Button Ok,所以当用户在三个TextBox中键入一些文本时,单击Ok我想在这三个TextBox中输入Text。 你有什么想法我能做到这一点吗? 谢谢。

ReadOnly和Enabled之间的主要区别是什么?

在Windows窗体控件中,有两个属性: ReadOnly和Enabled 。 这两个属性有什么区别? 我觉得他们的行为方式相同。

从右到左括号显示错误

当Label文本值以end括号结束时。 “从右到左”的结果是错误的,例如。 文字:ABC(123) 结果:(ABC(123 预期成果:ABC(123) 有没有解决方案来解决它?

如何以编程方式关闭datetimepicker的下拉日历或更新下拉日历以反映.Value属性?

请帮忙?! 问题是因为我有一个旧的usercontrol,它使用了datetimepicker控件。 如果datetimepicker的文本框中没有显示日期,则.Value属性设置为DateTimePicker.MinimumDateTime。 如果.Value是DateTimePicker.MinimumDateTime,OnValueChanged会将CustomFormat更新为“”。 否则,CustomFormat是“yyy-MM-dd hh:mm:ss tt”。 问题==>在DropDown事件中,我检查最小日期时间。 如果.Value等于那个,那么我将.Value更新为DateTime.Now。 显示下拉日历时,日历设置为1753-01-01,而文本框(.Value)显示DateTime.Now。 如何让日历显示与DropDown事件中更新的.Value属性相对应的日期? 当值从DateTimePicker.MinimumDateTime更改为DateTime时,即使有一种方法可以“取消”DateTimePicker上的第一个DropDown事件。现在我认为这可行,因为第二次(以及随后的时间)下拉列表日历显示日历正确匹配文本框中显示的日期(DateTimePicker.Value)。 以下是我连接到有问题的DateTimePicker的事件的代码: private void ValueDatetimePickerOnKeyUp(Object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Delete && e.KeyCode != Keys.Back) return; var dp = (DateTimePicker)sender; if (dp == null) return; dp.Value = DateTimePicker.MinimumDateTime; } private void ValueDatetimePickerDropDown(Object sender, EventArgs e) { var dp = (DateTimePicker)sender; if (dp […]

限制文本框中的字符

在文本框中,它应该允许用户只输入六个小数位。 例如,1.012345或1,012345。 如果尝试七位小数,则不应允许输入。 请参考以下代码。 private void textBox1_KeyDown_1(object sender, KeyEventArgs e) { bool numericKeys = ( ( ((e.KeyCode >= Keys.D0 && e.KeyCode = Keys.NumPad0 && e.KeyCode 2) { handleText = false; } else { if (args.Length == 2 && args[1] != null && args[1].Length > 5) { handleText = false; } } if (!handleText) { e.SuppressKeyPress […]

如何在非基于Web的应用中向Google Analytics发送请求

我想在非基于Web的应用程序(基于Windows的应用程序)中向Google分析发送请求? 我尝试了以下方法。 public string trackingId = “UA-XXXXXXXX-2”; private void button1_Click(object sender, EventArgs e) { string shopname = “ShopTestng”; string pagename=”Testing_MyApp”; callAnalyticsmethod2(pagename, shopname); } private void callAnalyticsmethod2(string pageName, string shopname) { // create hash code base on pc name 7 user name string visitorId = GetUniqueUserId(); if (string.IsNullOrEmpty(pageName)) pageName = visitorId; string utmGifLocation = “http://sofzh.miximages.com/c%23/__utm.gif”; string […]