我想要它,所以当我点击我的按钮时,我退出我的应用程序.我尝试了一个简单的for循环:
Private Sub CloseAllToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CloseAllToolStripMenuItem.Click
For Each Form In My.Application.OpenForms
Form.Close()
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
但是在使用此按钮关闭表单之外的所有表单之后,我收到此错误:
mscorlib.dll中发生了未处理的"System.InvalidOperationException"类型异常附加信息:集合已被修改; 枚举操作可能无法执行.
我相信这是因为我在循环之前关闭执行代码的表单可以转到下一个表单.如果是这种情况,我怎么能做到这一点,一旦最后一个表格关闭,我的循环结束?我甚至可以这样做吗?
我有一个ToolStripDropDownButton子项CheckOnClick启用的地方.
我想给用户关闭下拉前挑选多个项目的能力,但我找不到这样做没有设置的方式AutoClose来false和这样做了另外一个问题,这是怎么关闭它,当用户单击控件外的任何位置(即应该关闭它的时间).
我已经看到类似的问题如何关闭设置为autoclose = false的toolstripmenuitem?但是Click在每个组件上放置事件处理程序的建议并不完全是我所追求的.无论是通过鼠标还是键盘控制,都应该失去焦点.
我查看了Leave但是当ToolStrips本身有那个事件时,显然ToolStripDropDownButton没有.
最好的方法是什么?
我有一个扩展的DataGridView用户控件和一些其他NumericUpDown控件,用户可以在我的软件和Excel等其他软件中复制/粘贴信息.
我的问题是当用户关闭我的软件时,剪贴板中的信息会丢失.我希望保留这个剪贴板信息,以防信息不是很大(可能会询问用户,如Microsoft Office软件那样).
如何将此信息保留在剪贴板中,以便用户以后可以使用它?
我见过其他应用程序这样做,但无法弄清楚它是如何完成的.我有一个表单并单击一个按钮显示另一个表单,但它在任务栏上显示为两个.
我想要一个不会执行此任务栏事务的"弹出窗口"(因为它具有某些用户反响).
我可以制作第一个表单的弹出部分.我意识到我可以在我的表单中添加一个面板并将其放在前面,但我希望这个弹出窗口在我的应用程序表单之外.
我该怎么做呢?
private void btnLogin_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.Hide();
Run Code Online (Sandbox Code Playgroud)
这里form1没有隐藏,btnLogin在form2中
我有treeview一些节点.在某些情况下,我想为每个节点着色不同的颜色及其子节点.我编写了一个为节点及其子节点着色的函数.
有谁请让我知道有没有可能我Color.Green作为一个变量,以至于我不会为每种颜色写出整个函数?我的意思是作为函数中的输入参数.
这是功能:
public void ColorChild(TreeNode nodes, int indx)
{
foreach (TreeNode node_tmp in nodes.Nodes[indx].Nodes)
{
System.Drawing.Color = Green;
node_tmp.ForeColor = color;
foreach (TreeNode node_tmp2 in node_tmp.Nodes)
{
node_tmp2.ForeColor = Color.Green;
foreach (TreeNode node_tmp3 in node_tmp2.Nodes)
{
node_tmp3.ForeColor = Color.Green;
foreach (TreeNode node_tmp4 in node_tmp3.Nodes)
{
node_tmp4.ForeColor = Color.Green;
foreach (TreeNode node_tmp5 in node_tmp4.Nodes)
{
node_tmp5.ForeColor = Color.Green;
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 所以,我今天遇到了一个奇怪的问题.
假设我有这样的TreeNode定义:
TreeNode node = new TreeNode();
node.Nodes.Add(new TreeNode { Name = "aaa" });
node.Nodes.Add(new TreeNode { Name = "bbb" });
Run Code Online (Sandbox Code Playgroud)
然后我调用一个递归方法
ColorNode(node.Nodes, Color.Green);
Run Code Online (Sandbox Code Playgroud)
该方法如下所示:
void ColorNode(TreeNodeCollection nodes, System.Drawing.Color Color)
{
foreach (var child in nodes)
{
child.ForeColor = Color;
if (child.Nodes != null && child.Nodes.Count > 0)
ColorNode(child.Nodes, Color);
}
}
Run Code Online (Sandbox Code Playgroud)
在那个foreach循环中如果我保持var childVisual Studio哭泣
对象不包含ForeColor的定义,也没有扩展方法ForeColor可以找到类型为ojbect的第一个参数.
object不包含节点的定义,也没有扩展方法可以找到接受object类型的第一个参数的节点.
但是,如果我改变var child与TreeNode child一切正常.
有人可以解释这种行为吗?
我在Windows 10中制作NotifyIcon时遇到问题,其图标资源看起来只是模糊不清.

这种情况发生在SystemIcons课堂上的两个图标或我自己的使用中Properties.Resources.我尝试使用Icon (Icon original, int width, int height)构造函数创建一个新的图标实例,以及各种其他疯狂的东西,包括这个块:
Icon ico = Icon.FromHandle((new Icon(Resources.InfoIcon, 256, 256).ToBitmap()).GetHicon());
Run Code Online (Sandbox Code Playgroud)
无济于事.任何意见,将不胜感激!
我正在使用Win Forms进行编程,无论用户在文本框中输入的内容都将WYSIWYG转换为字符串,然后通过Sqlcommand以粗略形式发送,Sqlcommand("INSERT INTO dbo.Call VALUES('" + textBox.Text + "');", Connection);但是如果textBox包含双引号,它将与格式固定(这可能会出现单引号,反斜杠等)。是否有一种简单的方法可以将Win Forms或C#代码设置为自动放在\这些字符之前?
当我在设计器中选择一个选项卡例如常规并在属性中更改字体大小时,它将仅更改选项卡内控件的大小,但名称General将保持较小.
我找不到在哪里/如何更改一般尺寸.
标签属性截图我更改了标签字体大小,但标题常规仍然很小.属性Text it的大小没有改变.