Tag: winforms

如何在DateTimePicker控件上禁用某些日期?

我想知道是否可以在DateTimePicker中禁用所选日期,以便用户无法选择它们。 我知道它可能在网络表单,但在Windows窗体我无法做到这一点。我可以实现这一点。

如何在C#中为我的控件添加移动效果?

我有一个Panel在我的C#表单中,我有一个按钮。 当我单击按钮时,隐形面板显示。 而不是我希望Panel移入或滑入。例如,当您单击combobox时,下拉列表不会弹出。我希望我的Panel看起来像那样。 我怎样才能做到这一点 ?

如何在app start上禁用空日志文件的创建?

我已经在我的应用程序中成功配置了log4net,但有一件事对我来说有点烦人。 即使没有错误发生,我的应用程序启动后也会创建(空)日志文件。 我想在出现一些错误后才创建日志文件。

如何在不滚动和丢失选择的情况下将文本附加到RichTextBox?

我需要将文本附加到RichTextBox,并且需要在不使文本框滚动或丢失当前文本选择的情况下执行它,是否可能?

Fire Form KeyPress事件

我有一个C#winform,我有一个按钮。 现在,当我运行我的应用程序时,该按钮会自动获得焦点。 问题是我的表单的KeyPress事件不起作用,因为按钮是聚焦的。 我试过this.Focus(); 在FormLoad()事件上,但仍然没有KeyPress事件。

如何从静态方法访问控件?

我在C#.NET中有一个应用程序,它有一个MainForm和几个类。 其中一个类接收来自网络的传入数据消息。 我需要将这些消息的文本附加到MainForm上的多行文本框中。 我可以通过使方法静态将消息发送到MainForm的方法,但静态方法无法访问MainForm的控件。 TheIncomingDataClass.cs namespace TheApplicationName { class TheIncomingDataClass { public void IncomingMessage(IncomingMessageType message) { TheApplicationName.MainForm.ReceiveMSG(message); } MainForm.cs public static void ReceiveMSG(string message) { txtDisplayMessages.AppendText(message); //This line causes compile error } 编译错误: 非静态字段,方法或属性’TheApplicationName.MainForm.txtDisplayMessages’需要对象引用

C#我可以在列表框中显示图像吗?

C#在坚果壳中,我可以在列表框中显示图像吗? 我有一个用户列表,我想在一些名称旁边显示绿色勾号,这可能吗? 谢谢

Control.AddRange(…)很慢

项目:我有一个父面板,它包含一个ComboBox和FlowLayoutPanel。 FlowLayoutPanel包含可变数量的子面板(inheritance自UserControl的自定义控件)。 每个子面板包含一些标签,两个ComboBox,一个按钮和一个带有3个ComboBox列和一个按钮列的DataGridView。 DataGridView可能有1-6行。 当从父面板上的ComboBox中选择一个项目时,FlowLayoutPanel将填充子面板。 问题:使用大约50个子面板填充FlowLayoutPanel大约需要2.5秒。 具体来说,我已经确定对FlowLayoutPanel.Controls.AddRange()的调用是罪魁祸首。 相关代码:我不能在这里发布我的所有代码(代码太多,部分内容是保密的),但我会尽力解释发生了什么。 家长小组: private void displayInformation(Suite suite) { this.SuspendLayout(); // Get dependencies. List dependents = new List(suite.dependencies.Keys); dependents.Sort(SuiteRange.Compare); // Create a ChildPanel for each dependent. List rangePanels = new List(); foreach (SuiteRange dependent in dependents) { ChildPanel sdp = new ChildPanel(); sdp.initialize(initialSuite.name, dataAccess); sdp.displayInformation(dependent, suite.dependencies[dependent]); rangePanels.Add(sdp); } // Put […]

TextRenderer.MeasureText结果的准确性

调用TextRenderer.MeasureText如下: TextRenderer.MeasureText(myControl.Text, myControl.Font); 并将结果与​​控件的大小进行比较,以检查文本是否适合。 结果有时是不正确的。 观察了以下两个问题: 通常,当Label设置为AutoSize时,TextRenderer将报告宽度比Control的自动大小宽度宽1个像素的宽度。 假负面,其中TextRenderer报告的宽度小于控件的宽度,但文本仍然被切断。 这发生在“Estacióndetrabajo” – 不确定重音是否会以某种方式影响宽度计算? 有没有办法提高MeasureText方法的准确性? 我应该调用接受设备上下文和/或格式标志的覆盖之一吗?

检测富文本框内是否发生粘贴事件

有没有办法可以找出富文本框中是否发生剪贴板粘贴事件? 此事件将用于使用粘贴的文本块执行某些操作。 谢谢 这是我的代码 protected override void WndProc(ref System.Windows.Forms.Message m) { if (m.Msg == WM_PASTE) { OnPasteOccurred(); MessageBox.Show(“Pas”); } if (m.Msg == 0x000F) { if (PaintControl) { base.WndProc(ref m); } else { m.Result = IntPtr.Zero; } } else { base.WndProc(ref m); } } 编辑 我希望基于粘贴事件做一些语法突出显示或缩进,这个特定的代码编辑器似乎非常有效。 我不知道它是怎么做的。 在这个特定方向需要帮助。 我很确定必须有一些原生的Win32代码或类似的东西可以截取。 我试过追踪键,鼠标事件并不漂亮。