Tag: winforms

如何为两个Windows窗体应用程序共享一个IsolatedStorage?

我在一个解决方案中有两个Windows窗体应用程序和库。 库类可以在IsolatedStorage中创建新文件夹和文件,并列出IsolatedStorage中的所有文件和文件夹。 第一个应用程序使用库类创建新文件夹/文件我希望第二个应用程序列出第一个应用程序创建的文件夹。 如何让他们使用相同的隔离存储?

Winforms / C#:在2次运行之间存储/检索(持久)TextBoxes的内容

是否有一种最简单的方法可以简单地告诉Winforms(主要是TextBoxes)将所有内容保存到文件而不必循环遍历所有控件? 我在一个WPF应用程序中看到了这一点,但我是无能为力的(谷歌没有发现任何东西)是否有一个开箱即用,最简单的方法。 再次,循环每个控件是可能的,但似乎……太多工作? 序列化可能有用吗?

克隆sharepoint角色组

我想编写一个C#应用程序来克隆SharePoint MOSS2007角色组(及其权限),但是没有起点。 MOSS2007似乎没有充分记录(在开发方面),尽管谷歌搜索问题相当广泛仍然没有任何想法开始尝试。 我希望这里有人做过类似的事情和/或知道SharePoint库足以提供一个很好的参考点。 我真诚地为基本问题道歉,也没有提供更多信息 – 如果我还有其他任何想法的话!

.net资源DLL包含多个resx文件

我需要知道从具有多个资源文件(.resx)的资源DLL中正确访问字符串和图像的方法。 我有一个非常大的项目,我正在研究,它由几个winforms组成,每个winforms有多个面板。 我试图通过使每个表单具有自己的res文件并将应用程序限制为一个资源DLL而不是多个资源DLL来整理一些东西。 问题是当我尝试将新资源文件添加到我的资源DLL并尝试访问字符串时,例如,正在保存在新创建的resx文件中。 ResourceManager返回一个空字符串。 这是我如何创建我的ResourceManager对象并获取字符串 static public string GetResourceString(string sStringName) { System.Reflection.Assembly myDllAssembly = System.Reflection.Assembly.LoadFile(ResPath); string[] allResourcesinDLL = myDllAssembly.GetManifestResourceNames(); ResourceManager ResInstance = new ResourceManager(allResourcesinDLL[0].Replace(“.resources”, string.Empty), myDllAssembly); return ResInstance.GetString(sStringName); } 其中ResPath是我的资源DLL的路径,sStringName是资源/字符串标题。 我不确定是否有办法指定要读取的resx文件或是否应以其他方式处理它。 请记住,我的应用程序是使用.net 2.0框架编译的,所以我只限于我能够使用的API。

阻止ButtoninheritanceParent的BackColor

当我有一个父控件有一个BackColor而不是SystemColors.Control ,但我有那个父控件上的按钮,我想在系统中绘制它们。 但是,当我不更改按钮的BackColor时,它会以父颜色绘制。 当我将按钮的BackColor更改为SystemColors.Control ,它不再在Windows主题中绘制。 左侧版本使用SystemColors.Control ,右侧版本不更改BackColor 。 炸了,看起来像这样。 在这里,您可以看到按钮具有坚实的背景。 有什么建议我可以解决这个问题吗? 可以通过创建新的.NET 2.0 WinForms项目并将Form1的构造函数更改为以下内容来实现图像中的效果: public Form1() { InitializeComponent(); var textBox = new TextBox(); Controls.Add(textBox); var button = new Button { Text = “L”, Width = 23, Height = 18, Left = -1, Top = -1 }; textBox.Controls.Add(button); // Disable the line below to get the […]

如何在C#中创建横幅面板?

我想创建自己的自定义控件,它基本上是一个包含3行和1列的TableLayoutPanel。 顶部和底部行将包含标签(横幅),中间行是我将添加其他控件的位置。 问题是,当我尝试从此控件构建其他窗体/控件时,设计器无法识别中间面板。 我怎么得到它? 如果我将文本框拖到中间并设置Dock = Fill,它将覆盖entrie表单/控件。 此外,有没有办法让设计师拒绝将控件拖动到顶部和底部(横幅)行? 我已经尝试了以下链接中的步骤,但没有任何运气( http://support.microsoft.com/?scid=kb%3Ben-us%3B813450&x=21&y=15 )。

如何在Windows窗体PictureBox中选择一个区域?

我希望通过允许用户选择一个矩形区域(类似于使用选择工具在Photoshop中完成的方式)来获取PictureBox中的一部分图片。 我怎么能这样做?

覆盖OnPaint

如果我重写OnPaint并在控件上绘制一个正方形,那么当我在设计器中预览时,如何显示e.graphics.draw …?

无法在Winforms中使用C#使用datagridview添加新行

我想制作一个简单的数据输入应用程序。 所以我做了以下几点 创建了一个新的Windows窗体应用程序 添加了DataGridView 添加了一个新的DataSource(SQL Express数据库,具有3列的单个表 – id,name,number)id是整数并且是主键 当设计器自动填充DataSet时,BindingSource和TableAdapter运行了应用程序。 当我运行应用程序时,它显示了现有数据,我可以通过单击空行或编辑现有数据来添加新数据。 但它没有为我存储(提交)数据。 在我做出更改之后,我就关闭了应用程序。 我记得前一段时间这样做,它曾用于反映变化。 我是否必须添加任何代码才能提交更改?

在C#中获取程序图标?

我有这个代码可以获取名称,但我如何获得每个程序的图标? string SoftwareKey = “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products”; RegistryKey rk = default(RegistryKey); rk = Registry.LocalMachine.OpenSubKey(SoftwareKey); string sname = string.Empty; foreach (string skname in rk.GetSubKeyNames()) { try { sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey(“InstallProperties”).GetValue(“DisplayName”).ToString(); string Inst1 = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey(“InstallProperties”).GetValue(“InstallLocation”).ToString(); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[2].Value = sname; dataGridView1.Rows[n].Cells[3].Value = Inst1; } catch (Exception ex) { //MessageBox.Show(ex.Message); } }