草庐IT

WinForms

全部标签

c# - 在 C# 中关闭除主菜单之外的所有打开的窗体

尝试使用关闭除主菜单以外的所有窗体FormCollectionformsList=Application.OpenForms;用一个foreach循环并说,if(thisForm.Name!="Menu")thisForm.Close();工作正常,它跳过菜单,并关闭第一个菜单,但随后出现错误:Collectionwasmodified;enumerationoperationmaynotexecute然后停下来。我已经尝试了几个地方,他们都说这个foreach循环是这样做的方法,这特别烦人,因为我在关闭表单后没有更新我的表单列表,我认为这可能有效。我唯一能想到的就是从后面开始,用一段

c# - 如何停止双击窗口标题栏以最大化 FormBorderStyle.FixedToolWindow 的窗口?

令我恼火的是,我promise会提供一个用户无法调整大小的固定窗口,但他们当然可以双击标题栏来最大化这个“不可调整大小”的窗口。我怎样才能关闭它?我可以使用winforms代码来完成,还是必须转到Win32?谢谢! 最佳答案 您可以将表单的MaximizeBox属性设置为false 关于c#-如何停止双击窗口标题栏以最大化FormBorderStyle.FixedToolWindow的窗口?,我们在StackOverflow上找到一个类似的问题: https:

C# DataGridViewButtonCell 设置按钮文字

我需要将我的DataGridViewButtonCell添加到Column中,并且我需要用不同的名称互相命名。但我没有找到任何文本属性。有人能帮帮我吗?我做那些事DataGridViewButtonCellb=newDataGridViewButtonCell();b.Value="name";MainTable.Rows.Add(b);它不起作用 最佳答案 如果您希望所有按钮具有相同的文本,请使用UseColumnTextForButtonValue属性(property)。如果你想为每个按钮使用不同的文本,那么使用DataGri

c# - 水平滚动条在 DataGridView 上不可见

我在Window窗体上有一个DataGridView,它填充了30列和数千行。ScrollBars属性设置为Both,但水平滚动条仍然不可见。即使我无法使用键盘上的箭头键滚动。我也通过将ScrollBars属性设置为Horizo​​ntal进行了尝试,但这没有任何区别。有什么建议吗?谢谢 最佳答案 伙计们,已经解决了。我在回答我自己的问题;它可能会在将来帮助某人。其中一列的Frozen属性设置为True。对于所有列都应为false。现在ScrollBar对我来说工作得很好。干杯 关于c#

c# - 每天创建一个新的日志文件

正如标题所暗示的那样,我如何在C#中每天创建一个新的日志文件?现在该程序可能不一定会全天候运行,而只会在工作时间被调用。所以我需要做两件事。如何每天创建一个新的日志文件?日志文件的名称格式类似于MMDDYYYY.txt我怎样才能在午夜之后创建它以防它运行到晚上的所有时间? 最佳答案 2018年更新:我现在更喜欢使用NLog以前关于log4net的回答:Thisexample显示如何配置RollingFileAppender以在日期期间滚动日志文件。此示例将每分钟滚动一次日志文件!要更改滚动周期,请调整DatePattern值。例如,

c# - 在正确位置单击按钮时如何显示上下文菜单条

我想点击一个按钮并让它在按钮正下方显示一个ContextMenuStrip。当我尝试PointToScreen和顶部和左侧坐标时,它一直显示在屏幕的左侧。有什么建议吗? 最佳答案 我知道这是一个老问题,但我认为它可能对其他人有所帮助。以下代码将在被单击的按钮正下方显示上下文菜单,并且该按钮看起来像一个下拉按钮。privatevoidButton1_Click(objectsender,EventArgse){ButtonbtnSender=(Button)sender;PointptLowerLeft=newPoint(0,btnS

c# - 从单独的线程访问表单的控件

我正在练习线程并遇到了这个问题。情况是这样的:我在一个表单上有4个进度条,一个用于下载文件,一个用于显示页面加载状态等...我必须从单独的线程控制每个ProgressBar的进度。问题是我收到了一个InvalidOperationExceptionCross-threadoperationnotvalid:Control'progressBar1'accessedfromathreadotherthanthethreaditwascreatedon.我的这种方法有错吗?有人可以告诉我如何实现吗? 最佳答案 Control只能在创建它

c# - 为什么覆盖 .GetHashCode 会清除 WinForms 中的这些数据绑定(bind)值?

我们遇到了一个奇怪的错误,我们在调试时遇到了问题。我们有一个使用MicrosoftCAB、DevExpress组件和.Net3.5的MDI工作区。如果用户在工作区中打开两个窗口,每个窗口都包含一个UserControl绑定(bind)到两个单独的数据模型,然后最小化它们,第一个最小化的窗口是在第二个窗口时清除它的绑定(bind)字段一个最小化。数据模型的.Equals和.GetHashCode方法已被覆盖,因此两个数据模型被认为是相等的。如果我们改变它使它们独一无二,我们就不会得到这种行为。下面是一些显示问题的示例伪代码vara=newMyWindow();a.DataModel=ne

c# - 在 C# 中无失真地裁剪和打印图像文档

我正在使用WinForms。在我的表单中,我有一个用于显示图像文档的图片框。问题是当我裁剪图像然后将文档打印出来时图像变得轻微扭曲。如果我不裁剪图像文档并定期打印它,图像文档就不会变形。如何裁剪和打印图像文档而不失真?或者是否有更好的编码方式,以便它可以在不扭曲图像文档的情况下进行裁剪和打印?如果可以,我该怎么做?注意事项:我的图片框设置为缩放,因为我处理的图像很大:图片文档示例尺寸:2500x3100我的图片框没有边框int_cropX,_cropY,_cropWidth,_cropHeight;publicPen_cropPen;privateState_currentState;

c# - 如何防止垂直滚动条在控件中占用空间,导致水平滚动条?

我有一个自定义控件,其中嵌入了一个FlowLayoutPanel,我向其中添加了元素(其他自定义控件)。在FlowLayoutPanel的布局事件中,我将FlowLayoutPanel中的所有控件的大小调整为包含FlowLayoutPanel的大小。在需要垂直滚动条(AutoScroll=True)之前一切正常,占用FLpanel内的空间,导致出现水平滚动条。您看到的乱码是我在元素的构造函数中生成的一些随机占位符文本。我想阻止这种情况:我尝试向用户控件添加垂直滚动控件并在Scroll事件中执行FlowLayoutPanel.VertScroll.Value=sender.value:它