草庐IT

WinForms

全部标签

c# - WinForms Validating 事件阻止 Escape 键关闭表单

我有一个简单的表单,只有一个文本框,外加确定和取消按钮。表单的AcceptButton和CancelButton设置正确,OK和Cancel按钮的DialogResult设置为“OK”和“Cancel”。我想向TextBox添加验证,这将防止用户在验证失败时确定表单,但也将允许他们像往常一样取消。CausesValidation属性在所有控件上默认为True,但我已将取消按钮上的此属性更改为False。果然,单击“确定”或按Enter键将运行我连接到TextBox的验证事件。按取消按钮绕过验证,这是完美的。但是,按Escape取消表单与按“取消”按钮不执行相同的操作-它会引发验证事件并

c# - FastColoredTextbox AutoWordSelection?

FastColoredTextbox是一个用户控件,可以在thisurl中下载。,它看起来像这样:这是一个很棒的控件,但是双击文本时只能选择一个词,不能按住鼠标来选择更多的词,所以即使你试图移动鼠标,它也只能选择鼠标指针上的整个当前词向左或向右移动光标以选择更多文本。没有找到说明问题的资料,官方的示例工程都有这个问题。没有人指的是如何使AutoWordSelection等同于FastcoloredTextbox控件的默认TextBox,但最重要的是:如何用鼠标选择多个单词?UPDATE:@mostruash的回答很有启发性,但是一直以来我都无法自己进行修改。我需要一个C#程序员的巨大帮

c# - 隐藏 TabControl 按钮以管理堆叠的面板控件

我需要处理多个面板,其中包含各种数据掩码。每个面板都应使用TreeView控件可见。此时,我手动处理面板可见性,方法是使所选面板可见并将其置于顶部。实际上这不太舒服,尤其是在UI设计器中,因为当我添加一个全新的面板时,我必须调整每个面板的大小,然后再进行设计...一个好的解决方案是使用TabControl,每个面板都包含在TabPage中。但是我找不到任何方法来隐藏TabControl按钮,因为我已经有一个用于选择项目的TreeView。另一个解决方案是ipotethic“StackPanelControl”,其中面板使用堆栈排列,但我无法在任何地方找到它。处理这种UI的最佳解决方案是

c# - 如何使用 C# 检查 datagridview 中的空单元格和空单元格

我正在尝试检查datagridview单元格中的空值和空值...但我无法正确执行...for(inti=0;i我什至试过这个代码if(String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[3].Value)){MessageBox.Show("cellisempty");return;}谁能帮我..解决这个... 最佳答案 我会这样尝试:foreach(DataGridViewRowrwinthis.dataGridView1.Rows){for(inti=0;i

c# - Winforms ListView - 双击时停止自动检查

如何使ListView在双击某项时不自动选中它?我可以尝试连接到MouseDoubleClick事件,并将Checked属性设置为false,但这感觉有点像hack。当实际检查项目时,我还会运行一个相当昂贵的计算,并且不希望此代码在双击时运行。使用上面的事件Hook,在处理双击之前引发ItemCheck和ItemChecked事件。有什么好的解决方案吗? 最佳答案 当您必须修改nativeWindows控件的工作方式时,通常不会想到优雅这个词,但这正是这里所需要的。请考虑您是否真的希望您的控件的行为与任何其他程序中的ListView

c# - 条件 DataGridView 格式化

我有一个DataGridView。我将其.DataSourceProp设置为我自己的对象的BindingList:BindingList然后我为它创建了一些列..DataGridViewTextBoxColumndescColumn=newDataGridViewTextBoxColumn();descColumn.DataPropertyName="Description";descColumn.HeaderText="Description";descColumn.Width=300;DataGridViewTextBoxColumngameIDColumn=newDataGrid

c# - 使用 SqlDataReader.IsDBNull 时使用列名

我有这段代码可以从SQLDB中读取数据。我不知道应该如何编辑它才能使用原始列名而不是列索引。stringquery="SELECT*FROMzajezdWHEREevent='"+thisrow+"'ANDyear='"+klientClass.Year()+"'";SqlCommandcmd=newSqlCommand(query,spojeni);spojeni.Open();SqlDataReaderread=cmd.ExecuteReader();if(read.Read()){maskedTextBox2.Text=read.IsDBNull(24)?string.Empty

c# - Control.ClientRectangle 与 Control.DisplayRectangle

我理解客户矩形关于表单/控件的概念,但是我不明白之间有什么区别Control.ClientRectangle和Control.DisplayRectangle..在阅读了这两个属性的MSDN页面后,不清楚何时其中一个会返回与另一个不同的值。.ClientRectangle的MSDN页面说:Theclientareaofacontrolistheboundsofthecontrol,minusthenonclientelements,suchas:TitleBar,Border,ScrollBars,andMenu.这很清楚。.DisplayRectangle的MSDN页面说:Forth

C# 将 DataTable 绑定(bind)到现有的 DataGridView 列定义

我一直在与NullReferenceException作斗争,希望这里有人能够为我指明正确的方向。我正在尝试创建并填充DataTable,然后在DataGridView控件中显示结果。基本代码如下,在我调用新的UpdateResults_Delegate时执行停止并出现NullReferenceException。奇怪的是,我可以在从QueryEventEntries返回之前成功跟踪entries.Rows.Count,因此我至少可以显示1)entries不是空引用,以及2)DataTable包含数据行。我知道我一定做错了什么,但我不知道是什么。privatevoidUpdateRes

c# - 如何为 ListViewSubItem 设置图标?

在ListView中,您可以在每个项目上都有图标。在详细信息模式下查看时,图标显示在最左侧的列中。我可以在其他列中显示图标吗? 最佳答案 ListView控件本身不支持子项中的图像。最简单的做法是切换到DataGridView并使用DataGridViewImageColumn。如果这不可能,那么您将需要使用ListView控件中的自定义绘制支持自己绘制图标。为此,请设置ListView.OwnerDraw=true并处理ListView.DrawSubItem和ListView.DrawColumnHeader事件。private