GDI+DrawLines函数有一个剪辑错误,可以通过运行以下c#代码来复制。运行代码时,会出现两条线路径,这两条线路径应该相同,因为它们都位于剪裁区域内。但当设置剪裁区域时,不会绘制其中一条线段
protected override void OnPaint(PaintEventArgs e)
{
PointF[] points = new PointF[] { new PointF(73.36f, 196),
new PointF(75.44f, 32),
标签: Winforms
webformsradio-buttonradiobuttonlist
此类型的控件是否仅在第三方库中可用?有人实现了开源版本吗?我相信您可以在网格中包含单选按钮,尽管这比需要的要麻烦
此外,我认为使用flowlayout面板动态创建单选按钮的控件并不难
像ASP.NET中的母版页一样,我们对Windows窗体应用程序是否有类似的概念。这样我就不必在整个应用程序中重复表单的同一部分(页眉和页脚)。创建一个定义所需组件的表单类,并将所有其他表单作为该表单类的子类
您可以创建一个基本表单类,其中的控件将位于该类型的每个表单上,然后从该基本类派生所有实际表单。这被称为“视觉继承”,Windows窗体设计器对此有一些很好的设计时支持
或者,您也可以考虑使用一个带有页眉和页脚字段的实际表单,以及一个大的空白面板来放置您的各个“页面”。使每个页面成为一个用户
我刚刚为一个时间管理系统模拟了一个粗糙的用户界面,并希望得到一些反馈。如果我能在Winforms中实现我想做的事情,我会特别寻找什么
这是模型
(死链接)
我关注的领域是劳工类别部分。可能有1-24个不同类别的人将记录小时。由于这是一个客户端应用程序,我考虑在分类部分放置一个滚动条,这样它就可以扩展而不会导致UI崩溃
这些列将水平卷起..像excel一样给出总数
那么…你觉得呢?这在Winforms应用程序中是否可行?这当然是可行的,问题是这是否是最好的方法。我会查看一些现有时间管理应用程序的屏
可能重复:
MVVM应该用于WinForms吗?如果是这样,那么使用MVP的优势是什么?MVVM特别适合WPF和silverlight中的标记+代码和无外观模型。我不会把它推荐给winforms应用程序,因为我认为这是一种过度使用。我看不到winforms应用程序比MVP有任何好处。然而,在WPF和silverlight中,它始终是MVP的首选
在网上阅读什么是MVVM以及它为什么会出现。这将进一步澄清问题。我不认为MVVM可以在winforms中实现(至少在没有大量黑客攻击的情况下是这样)。
我需要创建一个数字图标,以百分比显示数据。
比如当最小化时,它应该显示1%,然后2%,比如说间隔5秒后,等等
有什么想法吗?看看
标签: Winforms
user-controlslistboxselection
我在一个用户控件中托管了几个winforms listbox控件。我希望此用户控件中的行为是,我一次只希望其中一个列表框具有选定项
因此,如果我选择了Listbox1中的一个项目,并单击了listbox2列表框中的一个项目,那么应该会自动取消选择所有项目
我已尝试使用以下代码来实现这一点:
dim listBox as listbox
For Each listName As String In _listboxes.Keys
If listName <>
您无法从非创建gui控件的线程访问gui控件,至少在执行此操作时有时会引发异常的消息是这样说的
最近,看到在后台线程上创建的表单工作正常,我感到困惑。我的心智模型是,由UI输入启动的所有操作都在GUI线程上处理。单击这样一个表单上的按钮应该会引发可怕的异常(表单及其所有控件都是在后台线程而不是gui线程上创建的),但事实并非如此。我的地图有点问题
(*)老实说,我看到了一个问题,打开标准的“打开文件”对话框会阻塞所有内容。限制是与任何UI元素的交互必须发生在创建它的踏板上。这并不意味着不能在后台
如何使用C#中的垂直选项卡实现选项卡控件?创建System.Windows.Forms.TabControl(Windows窗体的标准容器控件之一)的实例,并将对齐属性设置为左侧。首先在属性中将对齐属性设置为左侧
第二个设置要修复的SizeMode属性
第三,将ItemSize属性设置为首选大小示例宽度:30高度:120
之后,需要将DrawMode属性设置为OwnerDrawFixed。
下一步是为TabControl的DrawItem事件定义一个处理程序,该事件从左到右呈现文本
范例
在fo
我正在创建一个常规的windows应用程序,它将分发给我所在部门的几个用户。我需要在App.config文件中包含一些连接密码,我显然不希望最终用户只是启动记事本查看密码
有几篇文章介绍了如何加密/解密配置部分,但似乎您必须与可部署解决方案共享/提供一些密钥
有没有一种更简单的方法,只需对某些设置进行加密,使其不为用户可读,但在重新分发程序时不需要额外的步骤或文件?另外一个好处是,在.NET代码中访问配置设置仍然是透明的。我总是可以创建一个自定义方法来对字符串进行加密,然后在自定义代码中对其进行
我想我们都知道“贵公司的业务线软件”是什么样子的
(来源:)
是否有任何资源、建议规则或常规技巧可以对这样的应用程序进行可视化驯服?我们的业务领域与大多数业务领域一样非常复杂,我们的客户需要极大的灵活性。在每个对象上跟踪一船字段并不是完全可以避免的
除了一般的建议,我还对WinForms特有的用法和工具感兴趣。如果有这种类型的(视觉上)设计良好的软件的例子,那也会有帮助。我是一名程序员,曾在出版部门工作。我的建议是:使用平面设计师;相信他们的意见;如果你不是一个
在我们没有平面设计师的办公室,
我正试图找到一个可以在c#中使用但不能在服务器上使用的富文本编辑器。。我想在本地使用它
我正在为客户制作一个时事通讯“系统”,我认为除了我制作页眉和页脚外,他输入内容的最简单方法是通过RTE。。。我会在他的web服务器上创建它,但它只支持PHP,我不知道PHP
那么visual studio c#winforms是否有RTE(最好是开源的)?我发现了一些富文本控件
我相信以上所有这些都会对你的工作有所帮助,但我非常肯定它们不是免费的
我能想出的免费的看起来不太吸引人
这实际上是在编辑模式下使用
我在winforms应用程序中有一个DataGridView。
除了来自db表的4列之外,我还需要在datagridview[可能正在使用DataGridViewComboColumn?]中显示一个具有组合框的附加列。
2.然后我想为每一行的每个组合框添加不同的项目集
我该怎么办
谢谢。您可以尝试通过网格的数据绑定完成添加它们
这句话的意思是什么
void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCo
正如标题所说。。。我有一个带有数据绑定下拉列表的Winforms应用程序。我希望用户能够方便地从一堆预定义的值中进行选择,同时也能够键入自己的值
如果我只是启用数据绑定并将下拉类型设置为除DropDownList之外的任何内容,它允许我输入任何我想要的内容,但不会将其保留到对象。。。
似乎是一个简单的问题要解决。。。帮助?我在组合框上添加了一个事件处理程序。Leve此代码将组合框中新键入的字符串添加到基础列表(国家)中,并刷新与之绑定的组合框
限制
您必须根据您拥有的数据源类型处理新元素的添加
我在DelphiPrism下为Mono编程。在打开已经打开和关闭的窗口窗体之后,我不断遇到这个错误,“无法访问已处理的对象”,即使窗口窗体在类中声明并在构造函数中实例化,如下所示
下面是声明它的类:
MainForm = partial class(System.Windows.Forms.Form)
private
method SignalBtn_Click(sender: System.Object; e: System.EventArgs);
method Com
这是另一个关于从.NET妥善处理对象的问题。在阅读了很多关于dispose最佳实践(以及人们的意见)的不同文章之后,我无法得到这个问题的答案。我有两张表格,表格一和表格二
表格1
void ShowFormButton_Click(object sender, eventargs e)
{
Form2 form = new Form2();
form.TextChanged += new eventhandler(form_TextChanged);
form.Show(
我有一个winform应用程序和如下的可观察设置:
Form form = new Form();
Label lb = new Label();
form.Controls.Add(lb);
Observable.Interval(TimeSpan.FromSeconds(1))
.Subscribe(l => lb.Text = l.ToString());
Application.Run(form);
这不起作用,因为创建表单的主线程上不会运行l=>lb.T
我正在为基于TextBox的DataGridView创建一个自定义编辑控件。这很好,除了(尽管我可以覆盖OnValidating事件)将e.Cancel设置为true不会阻止用户离开单元格之外
当用户输入无效数据时,如何强制保留编辑控件
这必须是可能的,因为当您在绑定列中输入无效数据时,您必须实现Dataerror事件,并且当数据无效时,用户不能离开单元格 我通过覆盖EditingControl的OnValidating事件跳过base.OnValidating解决了这个问题。在CellVali
我不熟悉VB.NET、Windows应用程序和DataGridView。
这是一个非常基本的错误,我现在正在忍受。我有一个从数据库中检索数据的存储过程。我将这些数据存储在数据集中,并尝试在DataGridView中查看它。我使用以下代码进行数据绑定,这会引发错误:
DataGridView1.DataSource=ds
DataGridView1.DataBindings()
代码中的第二行抛出错误:
属性访问必须分配给属性或使用其值。
我怎样才能解决这个问题呢?也许你的意思是:
Data
我们有一个net 4.0 winforms应用程序,通过clickonce发布到客户端pc。安装大约为80MB。应用程序脱机可用,并且在使用启动应用程序时进行更新
ApplicationDeployment.CurrentDeployment.Update
每次我们对应用程序进行更新时,一切都很正常,每个客户端都得到了支持。但是,应用程序缓存的大小一直在增长。。。我们注意到LocalAppData文件夹中保存了两个以上的版本。clickonce安装文件夹的大小超过1GB
仅适用于在线应用程序,
我试图在GUI中创建一个慷慨而快速的组件,我所做的代码如下,但我知道他没有做我想做的,我也不知道我该怎么做
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class GUI :
我正在WinForm应用程序中绘制标题栏的一部分。工作正常(公司名称以橙色居中)
这是在表单代码中执行此操作的代码:
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int ReleaseD
如果我设置了一个Windows窗体复选框。Checked=true,并且它已经为true,小部件是否会重新绘制自身
我希望不会,如果它只是直接设置值,因为不会有任何变化。但我可以想象,其中可能有一些神奇的代码,在设置值时设置脏标志,而不管它已经是什么
我只是想知道我是否应该这样做以防止额外的刷新:
if (TheBox.Checked != checkBool)
{
TheBox.Checked = checkBool;
}
如果选中的值没有更改,则不会触发Paint事件,因此我假设这
DevXPress没有简单的报表查看器控件,无法在Windows窗体上使用XtraReport,但只要在报表上调用ShowPreview就可以了:
var report = new ClientNameReport();
report.ShowRibbonPreview();
上面的代码显示了一个带有我的报表的非模型表单和一个很好的功能区控件,用于查看所有想要查看的报表,但是表单的标题文本是Preview,我想将其设置为报表的名称。该报表有一个容器属性,但我找不到非空的位置
如何访问承载报表的
我在windows应用程序中有一个请等待表单,它在长时间运行的任务之前被渲染,请等待包含一个动画gif,在这个过程中需要“旋转”,但我无法得到这个工作
我最终使用以下代码获得了正确显示的表单:
frmChooser chooser = frmChooser.Instance;
chooser.Url = this.UrlTextBox.Text;
frmBuildNotification fb = new frmBuildNotification();
fb.Sh
我们目前有一个应用程序(Windows服务),可以连接到我们的另一个应用程序并获取发票。在发票中,页脚/页眉字段有一个RTF字段。当我们获取数据时,RTF将转换为纯文本,代码如下:
public static string ConvertFromRTFToPlainText(string rtfString)
{
if (rtfString == null)
return null;
System.Windows.Forms.RichTextBox rtBox
我使用Windows窗体中的splitContainer获得了面板1和Panel 2。我想保持面板1的原始大小。当我最大化界面中的表单时,我只想从原始起点最大化面板2的大小
我试图更改splitContainerpropertiesdock中的设置,但未能成功
我如何单独最大化面板2
当我检查此链接时,我的问题没有解决方案 将SplitContainer.FixedPanel属性设置为要保持固定的面板,或者使用简单面板并根据需要正确定位它们
我只想最大化winform中的面板2。你说得对。F
这一定很简单,我就是看不出来(也找不到答案:(
我正在尝试学习DevExpress控件,并已阅读过建议将eXpress持久对象用于O/R映射的文章
1) 我有一个现有的SQL Server Compact 4.0数据库,我为其生成了ORM
2) 我有一个带有XtraGrid.GridControl的Winform gridControl1
3) 在Form_Load event中,我有以下代码:
XPCollection cName = new XPCollection(type
在我的主要C#项目中使用表单变得越来越不稳定,但现在我甚至无法创建一个全新的用户控件,因为Visual Studio 2010立即崩溃
这在几个不同的机器(WinXP和Win7)上都是一个问题,所以我认为这与项目设置有关
我尝试过用一个单独的VS实例调试打开控件,但它似乎甚至没有到达控件的构造函数
是否有任何关于跟踪此项的建议?解决方案是删除对第三方控件的引用并将其添加回。谢谢鲍勃·考夫曼。这个项目有多大?有多少文件?什么样的C项目(网站、winforms、MVC…)?您是否正在使用任何第三方控
标签: Winforms
custom-controlsdatagridviewcombobox
我希望在同一datagridview列中有两个控件
我想自定义DataGridViewComboxCell,这样它将显示所选值的值,并在其上显示带有一些文本的浮动标签。在过去,我可以通过复选框和标签来实现这一点,但DataGridViewComboxCell的问题是,当我重写paint事件时,它会显示一个空数据源
在使用Paint事件后,我尝试再次分配数据源,但尽管我在DataGridViewComboxCell中看到值和显示正确值的标签,但我进入了一个无限循环,因此我看到GUI不断闪烁
10倍
我正在尝试使用C#winforms编写一个双向绑定应用程序
我将BindingNavigator和DataGridView绑定到同一数据源
因此,我可以使用双向绑定(在winforms中为yes),我希望能够在bindingSource排序顺序发生更改时进行检测
当我单击DataGridView的列标题时,网格的排序顺序会改变
并且BindingSource.ListChanged事件不会触发
但是bindingSource.Sort仍然为空
单击网格列标题时,将触发BindingSource.
在Winforms中,如果MDI子窗口最大化,则不会接收ResizeBegin(或ResizeEnd)事件。它确实接收调整大小事件-为什么会有区别?如果未最大化子级,则它将获得ResizeBegin/End事件。有什么好办法吗?有很多难看的方法:例如,直接从MDI容器ResizeBegin事件调用子容器。当用户开始和停止调整窗口大小时,会生成ResizeBegin/End事件。通过窗口内部的模式循环实现,当用户移动窗口时,它会使窗口边缘跟随鼠标光标。单击窗口边缘时调整开始,释放鼠标按钮时调整结束
我想在现有的html代码中插入html代码。
但我看不到结果。这是代码C#:
1) Program.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
wUI.DocumentReady += wUI_DocumentReady;
}
private void Form1_Load(object se
我正在尝试将ImageComboBoxEdit控件添加到WinForms应用程序中的UserControl上
public ShortCutUserControl()
{
var imageCollection = new ImageCollection { ImageSize = new Size(48, 48) };
imageCollection.Images.Add(Image.FromFile(@"Keyboard\ctrl.ico"));
imageColle
我想让Telerik winforms选中行>ID列值>层次结构中的第一列>模板[0]
我们正在使用Syncfusion framework Essential Studio中的EditControl(工具箱中的组件)编写一个小型代码编辑器。
我们希望在按下快捷键CTRL+SPACE后弹出自动完成窗口,而不在编辑器窗口中键入空格字符
有没有办法禁止在EditControl中键入字符
Private Sub editControl1_KeyDown(sender As Object, e As KeyEventArgs)
If e.Control Then
我是Powershell的新手,遇到了这个问题。我有一个很长的自动安装脚本,它运行在MySQL安装/帐户设置和其他.msi中
当用户等待脚本完成时,我在picturebox中显示了“Please wait”提示,其中包含一个旋转的pinwheel.gif
问题是,如果我将form.visible设置为$true并在脚本中稍后将其关闭,.gif本身将不会移动。它会显示但会丢失其动画。如果我将form.visible更改为“false”,并通过添加form.showdialog()参数将form更改
我试图更改.NET Windows窗体控件属性的默认设置,而不创建继承自该控件的自定义控件
例如,我想在我的表单上添加一个文本框,该文本框的textalalign属性已设置为HorizontalAlignment.Right而不是HorizontalAlignment.Left。即使只有广泛的解决方案,如果可以实现,我也很想知道。这将为处理大量控件并需要将其属性设置为特定的非默认值节省大量时间
创建一个自定义控件对于这一点来说太过分了,而且会用不必要的东西把我的解决方案弄得乱七八糟。我还考虑过在
当我的启动是模块时,api调用只会完全终止应用程序。我需要我的入口点是一个模块。我怎样才能做到这一点
Module EDIDownloaderModule
Sub Main(args As String())
ProcessApi()
End Sub
Private Async Sub ProcessApi()
Dim apiUrl As String = "http://localhost:3554/MWAPI/Projects/Ge
我目前正在开发一个windows窗体应用程序,它从服务器获取一个PointLatling列表,并将它们显示在地图上
以下是我迄今为止所做的工作(在所有点之间画线):
private void DrawRoute()
{
List inter=新列表();
//---
GMap.NET.WindowsForms.GMapOverlay标记=新的GMap.NET.WindowsForms.GMapOverlay(“标记”);
//---在下面创建“开始”标记
GMap.NET.WindowsFor
我有一个System.Windows.Form.ListBox,里面有大约150个项目。是否有办法启用“拖动选择”?我正在尝试各种设置,但似乎没有任何改变-我可以通过单击多行来选择多行,但只能一行一行。您可以将属性设置为MultiExtended
通过这种方式,您可以通过拖动鼠标选择多个项目,还可以使用SHIFT、CTRL和箭头键进行选择。。很好的Q/A-但是,这里的OP似乎是在寻找拖动选择,而不是拖放。如果他启用拖放功能,则将禁用拖动选择。太好了,谢谢!我没有看到的是那个“扩展”。
我使用RichTextBox来显示小文本,它在没有消除混叠的情况下更加清晰。TextBox中的文本没有消除锯齿,因此轮廓清晰。但RichTextBox中的文本是模糊的抗锯齿文本。所以我想防止RichTextBox对文本进行抗锯齿处理
我认为这只有在RichTextBox也可以渲染位图文本时才可能,因为对于小文本,如果渲染时没有抗锯齿,结果将不可读。所以问题是RichTextBox是否可以以位图模式而不是矢量模式渲染文本
环境:Windows 10 x64,VS2017
这个问题的答案不会影响Ri
标签: Winforms
chromiumvisual-studio-2019cefsharp
我想在Visual Studio社区2019版中升级Windows窗体应用程序中的ChromiumWebBrowser版本。我在网上找到一个文件
如何使用此文件升级版本?在听取了的评论后,我才知道正确的方法。在Visual Studio 2019中,转至项目>管理NuGet软件包。选择“已安装”选项卡并搜索“已安装”。您将得到CefSharp列表,因为您已经安装了它。在右边,当你鼠标滑过时,有一个“升级”箭头
单击它,您将被引导完成升级。升级后,您将收到一条成功消息
关闭Visual Stud
要捕获热键Ctrl+A,我们可以在Form1\u KeyDown中使用以下语句
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
MessageBox.Show("Test");
}
要捕获Ctrl+Alt+A,我们可以使用:
if (e.Control && e.Alt)
{
if (e.KeyCode == Keys.A)
{
//
我有两个标签:
源目录:&“目标目录:”
和两个文本框:
“tbSource”和“tbTarget”
我为每个文本框添加了快捷方式
“Alt+S”和“Alt+T”
这很好,但是如果我尝试在标签上添加下划线
“源…”&“目标…”
它坏了。对于下划线,仅选择第一个文本框(tbSource)。(具有两个快捷方式)
我做错了什么?吉米的回答是正确的:
“由于标签使用助记符,您只需确保文本框的TabIndex设置为相关标签的TabIndex+1。”由于标签使用助记符,您只需确保文本框的TabIndex设置
在winform中使用COM引用时出现此错误。我尝试在winform中使用Windows Media Player COM,效果很好。但是当我尝试与其他COM dll一起使用时,出现了这个错误
我尝试将“regsvr32”注册到该COM dll,但它已成功注册,但在运行使用该COM对象的winform时仍会出现此错误 您可能缺少Office Web Components 2003
OWC安装程序可在此处下载:
在Mark删除的答案中将目标平台更改为x86会有所帮助。
我有点困惑:
我们有一个聊天应用程序,它要求用户在向上滚动时不要滚动聊天;我们有一个scrollInfo类,它让我们能够检查滚动条拇指是否在滚动条的底部,这样我们就可以确定是否应该滚动
不幸的是,有许多不同的方式来滚动聊天。可以使用滚动条向上/向下框,或滚动条拇指,或仅使用鼠标滚轮滚动
但是,如果使用向上/向下箭头,则没有问题
而且,如果使用滚动条拇指,VScroll事件确实会触发,但是如果不使用计时器不断查询鼠标左键状态,我们无法识别拇指移动的方向,或者如何检查拇指是否被按住
最后,如果鼠标滚
标签: Winforms
positionscrollbarrichtextbox
我在winforms 4上使用了两个富文本框(customRTB1和customRTB2)。
两个rtb都有相同的文本。
我想要实现的是,当一个rtb(customRTB1)向下滚动时,另一个rtb(customRTB2)也应该滚动到与customRTB1完全相同的位置。
我试图这样做:
public class CustomRTB : RichTextBox
{
#region API Stuff
[DllImport("user32.dll", Cha
我正试图从C#连接到Access数据库,但它返回了一个错误
我试图通过以下方式解决问题,但它不起作用
你能告诉我哪里出错了吗
connection_string =@"Provider=Microsoft.ACE.OLEDB.12.0;Password=pass@word1;Location=C:\Users\manoj\Documents\manoj\Databases\college.accdb;Persist Security Info=True;";
错误是:
多步骤OLE DB操作生
我一直在网上搜索一个基本的winforms示例应用程序,它是用vb.net编写的,用于将文件上载到onedrive。有人知道吗
我正在尝试使用vb.net中的winforms应用程序上传一个文件。我正在努力让授权生效。。。但是调用下一个方法会返回401
我做了以下工作:
共享范围为String=“wl.skydrive\u update”
共享客户端id为String=“00000000 40144E26”
作为新Uri([String].格式(“{0}&redirect_Uri={1}”,客户
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 150 页