Tag: winforms

我可以使用C#WinForm模仿这个选项对话框窗口吗?

这就是Outlook 2010中的选项对话框窗口。我想知道如何使用C#WinForm控件创建类似的选项窗口。 先看看它,我觉得它有点像TabControl 。 但TabControl似乎不提供左/右面板布局。 然后,我想到了SplitContainer控件,可能会利用它,左侧面板可能有一个菜单按钮列表,右侧面板显示选项详细信息。 但是,这里也出现了问题,如何创建看起来像截图中的菜单按钮呢? 也许,我缺少一些现有的控件。 如果WinForm在这里看起来不太好,我还能尝试什么? 有任何想法吗? 谢谢。

ListView子项字体无法正常工作

我有一个列表视图,我想根据某些条件在不同的单元格中应用不同的字体。 但我无法做到这一点。 我尝试了这些类型的代码来添加项目。 ListViewItem entryListItem = listView_Standard.Items.Add(“Items”); // Set UseItemStyleForSubItems property to false to change // look of subitems. entryListItem.UseItemStyleForSubItems = false; // Add the expense subitem. ListViewItem.ListViewSubItem expenseItem = entryListItem.SubItems.Add(“Expense”); // Change the expenseItem object’s color and font. expenseItem.ForeColor = System.Drawing.Color.Red; expenseItem.Font = new System.Drawing.Font( “Arial”, 10, System.Drawing.FontStyle.Italic); // Add a subitem called revenueItem […]

Win XP(x86)操作系统上的二级属性绑定exception,但不是Win 7(x64)

我很难过。 我的c#AddressForm上有以下行 lkuCounty.DataBindings.Add(“EditValue”, Address, “County.CountyID”, true); 这适用于64位Win7机箱但在Win XP 32位机器上我得到以下例外: Type: System.ArgumentException Message: Cannot bind to the property or column CountyID on the DataSource. Parameter name: dataMember 我猜我错过了一些细微差别,真的很感激一些帮助。 这是我的类(没有构造函数),它们位于一个单独的项目中( myproject.Common ) public class County { public short? CountyID { get; set; } public string CountyName { get; set; } } public class Address { public int […]

使用Invoke进行父窗体或目标控件之间有什么区别吗?

如果我想从另一个线程处理控件,检查InvokeRequired和调用控件的Invoke方法和父窗体的区别是什么? if (theForm.InvokeRequired) Invoke(…) 要么 if (myControl.InvokeRequired) myControl.Invoke(…) 来自MSDN : Invoke方法搜索控件的父链,直到找到具有窗口句柄的控件或窗体(如果当前控件的基础窗口句柄尚不存在)。

为什么要使用Windows.Forms.Timer?

我读了这篇优秀的文章比较.NET Framework类库中的Timer类,并得出结论,我可以用Windows.Forms.Timer做任何事情,我可以用Timers.Timer – 然后一些 。 因此,我想到的一个显而易见的问题是:为什么提供Windows.Forms Timer呢? 传统(向后兼容)支持? 其他?

FlowLayoutPanel使用AutoSize时的高度错误

我有一个表格,其中包含一个包含1列和3行的TableLayout,其中包含2个FlowLayoutPanel和一个文本框。 所有行都是AutoSize,列设置为Percentage = 100%。 每个FlowLayoutPanel都包含多个TextBox。 设置FlowLayoutPanel:LeftToRight,AutoSize = true,GrowAndShrink,Docking = Fill。 大纲是: Form TableLayout (Dock=Fill) FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink) More controls FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink) More controls TextBox(Dock=Fill, MultiLine=true) 问题是如果我将FlowLayoutPanel放在GroupBox中并且也设置为AutoSize = true,则FlowLayoutPanel高度未正确设置并且它在1行中显示TextBoxes,从表单中剪切一些TextBox。 大纲是: Form TableLayout (Dock=Fill) GroupBox (Dock=Fill, AutoSize=True, GrowShrink) FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink) More controls GroupBox (Dock=Fill, AutoSize=True, GrowShrink) FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink) More controls TextBox(Dock=Fill, MultiLine=true) 顺便说一句,如果我使用GroupBox,Panel或者甚至是UserControl来保存FlowLayoutPanel,也会发生同样的事情。 BTW […]

ac#winforms应用程序中的电子邮件validation

您好我如何在c#winforms中validation电子邮件?

(DataGridView + Binding)如何根据绑定的对象来着色线?

我想根据绑定对象的属性为特定行添加背景颜色。 我拥有的解决方案(它的工作原理)是使用Event DataBindingComplete但我不认为这是最好的解决方案。 这是事件: private void myGrid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { for (int i = 0; i < this.myGrid.Rows.Count; i++) { if((this.myGrid.Rows[i].DataBoundItem as MyObject).Special) { this.myGrid.Rows[i].DefaultCellStyle.BackColor = Color.FromArgb(240, 128, 128); } } } 还有其他更好的选择吗?

Control.GetPreferredSize方法的目的是什么?

我正在努力实现一个用户控件,它根据某些属性改变其大小。 据我所知,winforms布局引擎会在执行布局时询问每个子控件的首选大小,并告知它们可以承受的最大大小。 这是msdn中GetPreferredSize的描述: Control.GetPreferredSize(Size proposedSize) 检索可以安装控件的矩形区域的大小。 我对以下内容感到困惑: 您可以返回大于proposedSize参数中指示的约束的大小,但随着约束减少,proposedSize应该减少。 这是什么意思? 如果我返回的尺寸大于建议值,会发生什么? 有人可以解释一下这是如何工作的?

DPI图形屏幕分辨率像素WinForm PrintPageEventArgs

对于运行我的应用程序的任何显示器,Dpi点如何与像素相关? int points; Screen primary; public Form1() { InitializeComponent(); points = -1; primary = null; } void OnPaint(object sender, PaintEventArgs e) { if (points < 0) { points = (int)(e.Graphics.DpiX / 72.0F); // There are 72 points per inch } if (primary == null) { primary = Screen.PrimaryScreen; Console.WriteLine(primary.WorkingArea.Height); Console.WriteLine(primary.WorkingArea.Width); Console.WriteLine(primary.BitsPerPixel); } } 我现在拥有我需要的所有信息吗? 我可以使用上面的任何信息来了解1200像素的长度吗?