Tag: winforms

(“”)和(null)之间有什么区别

在尝试设置Validations时,我最初遇到了一些问题,检查文本框是否为null,我尝试使用 private void btnGo_Click(object sender, EventArgs e) { string name = textLogin.Text; if (name == null) { labelError.Visiblle = true; labelError.Text = “Field Cannot be Left Blank” } } 但它没有用,直到我试了这个 private void btnGo_Click(object sender, EventArgs e) { string name = textLogin.Text; if (name == “”) { labelError.Visiblle = true; labelError.Text = “Field Cannot be Left […]

我在Windows窗体中的跨线程调用有什么问题?

我遇到Windows窗体应用程序的问题。 必须从另一个线程显示一个表单。 所以在表单类中,我有以下代码: private delegate void DisplayDialogCallback(); public void DisplayDialog() { if (this.InvokeRequired) { this.Invoke(new DisplayDialogCallback(DisplayDialog)); } else { this.ShowDialog(); } } 现在,每次运行它时,都会在this.ShowDialog();行上抛出InvalidOperationException this.ShowDialog(); : “跨线程操作无效:控制’SampleForm’从其创建的线程以外的线程访问。” 这段代码出了什么问题? 这不是一种有效的跨线程调用方式吗? ShowDialog()有什么特别之处吗?

如何在winforms设计器中访问inheritance的控件

我正在制作一些控件,它们都必须共享相同的外观和一些常见的行为,尽管它们用于不同类型的输入。 所以我创建了一个从UserControlinheritance的BaseClass,我的所有控件都inheritance自BaseClass。 但是,如果我在设计器中添加BaseClass的控件,例如TableLayoutPanel,我在设计inheritance的类时无法访问它们。 我看到TableLayoutPanel,但即使他是“受保护的”,我也无法修改它或通过设计器将控件放入其中。 我通过代码访问它没有任何问题,但我不想失去使用设计器的能力。 现在,我只是从BaseClass中删除了所有控件,在每个inheritance的类中添加了布局和所有常用控件,然后使用引用在BaseClass中操作它们。 但这根本不能让我满意。 有没有办法让设计器使用inheritance的受保护成员控件? 环境:C#,.NET 3.5,Visual Studio 2008 编辑回答SLaks的建议。 我尝试设置一个属性,虽然我不习惯使用它,但它似乎不起作用。 这是我试过的代码: public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } public TableLayoutPanel TableLayoutPanel1 { get { return tableLayoutPanel1;} set { tableLayoutPanel1 = value;} } } public partial class UserControl2 : UserControl1 { public UserControl2() { InitializeComponent(); } }

如何在C#中将DataRow转换为DataRowView

可以或如何将DataRow转换为DataRowView? 例如: DataTable dt=ds.Tables[0]; DataRow dr= dt.NewRow(); DataRowView drv = ????

在不同的环境中改变不同的尺寸

一段时间以来,一些使用我的应用程序的人抱怨WinForm的绘制方式有些奇怪。 该表格有一个splitcontainer , panel1固定。 直到今天,我还没有能够重现他们的问题。 我刚刚在运行32位版Win7企业的笔记本电脑上安装了该应用程序。 (应用程序在运行64位版本的Win7的计算机上构建并运行没有问题。) 为了查看发生了什么,我将项目文件复制到笔记本电脑并使用Visual Studio 2012打开它以查看发生了什么。 然而,让我惊呆了,因为我不知道该怎么办。 在开发。 机器(我的64位win7 ent),表格(和拆分容器)尺寸的规格如下: 表格高度:383 表格宽度:707 分体式容器高度:321 拆分容器宽度:691 分离器距离:380 当我在笔记本电脑上加载项目时,规格更改为: 表格高度:419 表格宽度:859 分体式容器高度:397 拆分容器宽度:921 分离器距离:380 现在我终于可以理解一些人无法看到程序应该如何被看到的挫败感。 在32位机器上,分离器部分覆盖了几个按钮,这显然使程序难以使用,因为它们看不到文本。 这有什么原因吗? 我的意思是,如果原始代码设置为特定的大小值,那么无论程序运行在哪里,它都不应该是这样的? (鉴于用户当然没有resize)。 最重要的是,有什么方法可以解决这个问题,而无需构建两个单独的版本?

C#Windows7 / Vista风格ListView

当我在VS2008的详细信息视图中创建ListView时,它会创建一个相当古老的列表视图。 它没有任何花哨的hover效果和酷蓝色边框(例如)WinVista和Win7中的文件浏览器。 见图片例如: 总结一下,如何才能在C#VS2008中获得一个ListView,如上图所示? (VS2008右侧列表视图进行比较) 谢谢

如何防止表单对象在关闭时处理?

我使用的是MDIParent表格。 当我关闭它的孩子时,孩子的对象处理。 有没有办法将子可见性设置为false而不是处置?

FileDialog.RestoreDirectory属性实际上做了什么?

我已经阅读过有关MSDN上的属性,但我仍然不明白它的作用。 获取或设置一个值,该值指示对话框在关闭之前是否还原当前目录。 这到底是什么意思呢? “恢复”当前目录实际上做了什么? 谢谢您的帮助。

NotifyIcon没有显示

我正在编写一个简单的应用程序,我想使用notifyIcon而不是表单来控制,我已经通过Google找到了示例,但我的notifyIcon将不会显示。 我究竟做错了什么? static class MainEntryClass { /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); C2F TestApp = new C2F(); Application.Run(); TestApp.Dispose(); } } class C2F { public C2F() { InitializeComponent(); loadSettings(); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(C2F)); this.niC2F […]

从面板中删除动态控件

我在Windows窗体的面板上动态生成控件,我还生成了一个用于删除控件的按钮,所有控件都在行中。 int c = 0; private void button1_Click(object sender, EventArgs e) { int v; v = c++; panel1.VerticalScroll.Value = VerticalScroll.Minimum; ComboBox combo = new ComboBox(); combo.Name = “combobox” + v ; combo.Location = new Point(30, 5 + (30 * v)); ComboBox combo2 = new ComboBox(); combo2.Name = “combobox2” + v ; combo2.Location = new Point(170, […]