我有一个winforms应用程序,用户必须能够在运行时更改语言。为了通用化开关并避免硬编码控制名称,我尝试了以下扩展:internalstaticvoidSetLanguage(thisFormform,CultureInfolang){ComponentResourceManagerresources=newComponentResourceManager(form.GetType());ApplyResourceToControl(resources,form,lang);resources.ApplyResources(form,"$this",lang);}privatesta
我需要在代码中存储secret密码。我不能使用哈希技术,因为需要密码本身。如何将这些数据安全地存储在app.config文件中?还有其他方法可以安全地完成此操作吗?DPAPI和ProtectDataClass不是一个选项,因为key是系统特定的,例如:连接字符串不能以这种方式为不同的最终用户系统存储。 最佳答案 您可以使用DPAPI(数据保护API)来加密配置文件的某些部分。您的代码仍将使用ConfigurationManager并且解密将由框架处理。有关相同内容的更多信息,请参阅此模式和实践文档HowTo:EncryptConfi
文本框或富文本框,我唯一想要的是在滚动条移动时触发一个函数。我已经找到了GetScrollPos和SetScrollPos。我想定期检查滚动条的位置,但必须有更好的方法。那么,什么是更好的方法呢?更新:使用WinForms 最佳答案 假设是WinForms,您可以尝试调用:publicclassMyRTF:RichTextBox{privateconstintWM_HSCROLL=0x114;privateconstintWM_VSCROLL=0x115;privateconstintWM_MOUSEWHEEL=0x20A;prot
我想我在Windows或.NET中发现了一个错误,正在寻找解决方法。要重现该问题,请首先启用Windows功能“Beta:使用UnicodeUTF-8以获得全局语言支持”。您可能需要重启机器。现在在Winforms/C#中简单的创建两个RichTextBox组件,然后添加事件:privatevoidrichTextBox1_TextChanged(objectsender,EventArgse){strings=richTextBox1.Rtf;richTextBox2.Rtf=s;}最后,运行该程序并在第一个RichTextBox中简单地键入一些内容,当它尝试写入richTextBo
我正在使用VisualC#Express2008在我的XP开发机器上开发C#WinForms应用。我使用设计器上的“宽度”和“高度”将表单设置为我喜欢的大小,一切看起来都不错。我还将这些尺寸设置为MaximumSize属性。将应用程序部署到另一台XP机器上,该应用程序看起来就像在我的开发人员上一样。但是,在Win7机器上测试应用程序时,表单同时应用了水平和垂直滚动条。我假设这是由于Win7确定的表单的非客户端大小发生了变化。我可以调整窗口大小,但我希望它一开始就能正确显示。所以,我的问题是:跨操作系统正确维护表单大小客户区的最佳方法是什么?谢谢大家。 最佳答
经过大量谷歌搜索,我什么都想不出来..有没有办法得到一个没有旋转框的numericUpDown控件?我需要一个只接受整数的文本框,而numericUpDown具有我正在寻找的完美行为。但是,由于空间限制,我需要隐藏数字旋转框。当我尝试执行诸如numericUpDown.Controls[0].Hide()或numericUpDown.Controls.RemoveAt(0)之类的操作时,旋转框消失了,但在旋转框曾经所在的位置留下了无法使用的空隙。因此,数字会在该点滚动,这意味着空间被浪费了。还有其他解决办法吗?谢谢.. 最佳答案 您
首先,我认为这个论坛不适合我的问题,所以如果地方不对,请原谅并放在适当的地方。我没有找到适合我的问题的论坛。我开发了一个C#应用程序(WinForms)。现在我需要处理它的版本编号。我不知道什么是最好的方法。我希望版本号很简单,例如1.2或1.2.1。我阅读了有关SVN版本的信息,但在现阶段这似乎也有点令人困惑。应用程序有不同的版本类型-1种带有安装程序,1种没有安装程序。我认为发布版和开发版应该是一样的-如果我错了请指正。应该自动处理还是手动更改?处理应用程序版本编号的最佳、简单和容易的方法是什么。 最佳答案 我们使用major.
我正在制作一些控件,它们必须具有相同的外观和一些共同的行为,尽管它们适用于不同类型的输入。所以我创建了一个继承自UserControl的BaseClass,我所有的控件都继承自BaseClass。但是,如果我在设计器中为BaseClass添加控件,例如TableLayoutPanel,则在设计继承类时无法访问它们。我看到了TableLayoutPanel,但即使他受到“保护”,我也无法修改它或通过设计器将控件放入其中。我可以通过代码访问它,但我不想失去使用设计器的能力。现在,我只是从BaseClass中删除了所有控件,在每个继承类中添加了布局和所有公共(public)控件,然后使用引用
我有一个包含多个文本框和其他控件的表单。我正在使用errorprovider控件,并将验证事件连接到我需要验证的每个文本框上。Validating事件在一个控件将焦点转移到另一个控件时发生。所以当你使用tab键离开当前控件或者当你用鼠标点击另一个控件时会发生该事件1.而且我发现这非常烦人,举个例子,如果我打开这个winform,然后立即尝试关闭它,它不会让我这样做,因为验证会触发提示第一个文本框没有输入文本。我想要的行为是使用errorprovider,如何才能仅在单击表单的保存按钮时验证整个表单?谢谢 最佳答案 查看属性Form.
有人可以解释一下我将如何测量richtextbox控件中的字符串,以便我可以根据其内容自动调整richtextbox控件的大小吗?谢谢编辑:我已经考虑过,如果RichTextBox控件中有不同的字体,下面的答案将不起作用,如果我可以获得richTextbox控件的左上角坐标,然后得到底部-rtb中最后一行文本的右坐标。这基本上会给我RichTextBox控件内字符串的宽度和高度。这可能吗?或者这样做是个坏主意吗? 最佳答案 将以下代码放入ContentsResized事件:PrivateSubrtb_ContentsResized(