草庐IT

WinForms

全部标签

c# - Keys 枚举中 -(减号/下划线)和 =(等于/加号)键的枚举是什么?

我好像找不到它们here.我正在尝试将它们包含在我的热键选择对话框中。 最佳答案 从您提供的链接中结帐Oem*:OemMinusTheOEMminuskeyonanycountry/regionkeyboard(Windows2000orlater).OemplusTheOEMpluskeyonanycountry/regionkeyboard(Windows2000orlater).你可以有这样的东西:if(keyData==(Keys.Control|Keys.OemMinus))ZoomOutOrSomething();//

c# - 当文本太长时显示按钮的工具提示

我在winform上有一个按钮按钮文本长度在各种操作中可能会非常..我不想改变按钮大小(所以我将“Autosize”属性设置为false)当按钮文本被剪切时,如何在鼠标悬停时显示(完整按钮文本的)工具提示?请注意,我并不总是想要工具提示.....我只在按钮文本被剪切时才需要它 最佳答案 希望这段代码能帮到你if(button1.Text.Length>Yourbuttontextlengthtobechecked){System.Windows.Forms.ToolTipToolTip1=newSystem.Windows.Form

c# - 通过 C#.Net 创建/连接 VPN 连接

我有一个URL、一个用户名和一个密码。我想在C#.NetWinForms中建立VPN连接。你能告诉我从哪里开始吗?任何第三方API?代码示例将受到高度赞赏... 最佳答案 您可以像这样启动外部应用程序sample.这可能是最简单的方法,但它取决于外部应用程序。或者您可以尝试将WindowsAPI与一些包装器一起使用,例如DotRas.这可能有点困难,但您不会对特定的外部应用有任何依赖。 关于c#-通过C#.Net创建/连接VPN连接,我们在StackOverflow上找到一个类似的问题:

c# - 获取条码读取器值表单后台监控

我想用C#语言创建一个会计程序。我想使用条形码阅读器在商店中搜索产品(这对我的程序来说是可选的)现在,如果卖家使用条形码阅读器,则在主要形式中获取处理方法或事件的条形码值;如何在处理方法或事件的表单(无文本框)背景中获取条形码值?注意:我的条码阅读器是HID(USB接口(interface)) 最佳答案 条形码设备的行为类似于键盘。当您在文本框中获得焦点时,它会将字符发送到文本框,就像您从键盘输入它们一样。如果您不想使用文本框,则需要订阅键盘事件处理程序来捕获条码流。Form1.InitializeComponent():this.

c# - 来自模态对话框的模态对话框 - 当第二个关闭时都关闭 - 为什么?

C#/.NET3.5/WinForms我有一个可以打开模态对话框的窗体,该窗体可以打开另一个模态对话框窗体。内部对话框窗体有OK和Cancel按钮,它的AcceptButton和CancelButton分别设置为它们。当我在内部对话框中按下Enter键或单击“确定”时,外部对话框也会关闭。我看不到我在做什么-这是预期的行为吗?我可以提供代码,但我不想把它搞得一团糟。 最佳答案 发生这种情况是因为ShowDialog调用也修改了其所有者的状态。为防止这种情况发生,您需要在ShowDialog调用之后将第一个模态对话框的DialogRe

c# - 我必须取消订阅所有事件处理程序吗?

假设您在VS中的设计器中双击一个按钮,它会生成此Click事件处理程序。订阅代码在designer.cs中。我想知道,在处理表单时我必须取消订阅事件吗?此外,表单中的所有控件是否会在处理表单时处理?它实际上递归地调用每个控件的处置? 最佳答案 如果您要Hook自己的事件,则无需取消HookDispose上的事件。只有在Hook另一个对象中的事件时才需要担心。这样做的原因是事件Hook使订阅者的引用保持事件状态。如果您未能取消Hook,那么只要observable仍然存在,您就不会被垃圾收集。当你hook你自己的事件时,你有一个对你自

c# - 将大量文本写入文本框

我正在将大量格式化文本的日志写入.netWindows窗体应用程序中的文本框。一旦数据超过几兆就变慢了。因为我要附加字符串,所以每次都必须重新分配,对吗?我只需要将值设置到文本框一次,但在我的代码中,我正在执行line+=data数万次。有没有更快的方法来做到这一点?也许是不同的控制?有我可以使用的链表字符串类型吗? 最佳答案 如果文本框是增量添加的,例如日志输出,StringBuilder将无济于事。但是,如果上述情况属实并且您的更新足够频繁,您可能需要缓存一定数量的更新,然后一步添加它们(而不是不断添加)。这将为您节省许多字符串

c# - 设置 cell.ReadOnly 无效

我有一个DataGridView,我想通过设置ReadOnly=true禁用一些单元格/行。有时这不起作用并且单元格/行仍然可编辑的原因可能是什么?还有其他方法可以防止编辑特定行或单元格吗?是否可以防止单击或输入单元格? 最佳答案 您可以使用CellBeginEdit来阻止编辑事件。如果您不想编辑单元格,可以取消编辑。例如,如果您只希望第一列是可编辑的,您可以这样做:privatevoiddataGridView1_CellBeginEdit(objectsender,DataGridViewCellCancelEventArgse

c# - 我可以在加载表单时卡住 UI 渲染吗?

有什么方法可以暂停Winforms中的所有UI更新命令?或者我有一种轻微的感觉,我正在尝试以完全错误的方式解决这个问题,那么有没有另一种方法可以解决我的问题:我基本上加载了一个控件的保存状态,它加载了整个控件的新控件。但是,我在UI线程中执行了其中一些操作,并从另一个线程加载了一些数据,然后填充了UI。所以我在加载时的效果是用户可以看到一些控件出现在一个地方,然后移动到窗体上的另一个地方,更改值等。我想要一个加载屏幕而不是这个,并在后台加载控件。这是一个相当大的应用程序,而且它不是那么重要,因此重新设计我的代码并不是一个真正的选择。我可以在执行方法时简单地停止控件上的所有Update(

c# - 如何在绑定(bind)到数据源的datagridview中添加新行

这个问题在这里已经有了答案:Howtoprogrammaticallyaddarowtoadatagridviewwhenitisdata-bound?(4个答案)关闭6年前。我有一个绑定(bind)到数据源的数据GridView。当我单击“编辑”按钮或“新建”按钮时,我必须在datagridview中添加一个新行。我尝试了一些代码,但它给我错误,代码如下所示DataGridViewgrdview=newDataGridView();grdview.Rows.Add();grdview.Rows[grdview.Rows.Count-1].Cells[0].Selected=true;