Tag: winforms

使用log4net的RichTextBoxAppender

有没有办法使用log4net以编程方式创建RichTextBoxAppender? 换句话说没有xml app.config?

如何使用轮廓在图像上绘制文本?

我一直在寻找和寻找图像轮廓的绘图文字? 在这里我的代码 private static void tulisnamafile(string imagepath, string textnya) { Image image = Image.FromStream(new MemoryStream(File.ReadAllBytes(imagepath))); Bitmap newImage = new Bitmap(640, 380); using (Graphics g = Graphics.FromImage(newImage)) { // Draw base image g.DrawImageUnscaled(image, 0, 0); //Static is HERE SolidBrush brushing = new SolidBrush(Color.White); Font font = new Font((“Comic Sans MS”), 20.0f); int napoint = newImage.Height – […]

Open / SaveFileDialog类与它们在WPF表单中的使用之间的区别

非常好奇,但只是想知道是否有人知道使用之间的区别: System.Windows.Forms.SaveFileDialog(在Assembly System.Windows.Forms.dll中)和Microsoft.Win32.SaveFileDialog(在Assembly PresentationFramework.dll中)? 我在WPF表单中使用PresentationFramework.dll版本,但我目前正在重新使用表单中的一些旧代码,其中包括显示System.Windows.Forms.dll版本并想知道是否: 他们的外表有细微差别吗? 使用System.Windows.Forms.SaveFileDialog的任何互操作性问题? 或者这两个只是win32对话框? 这与使用Microsoft.Win32.SaveFileDialog在Windows Vista中有问题有关吗? 提前致谢。

如何动态填充树视图(C#)

我有一个包含3列的表,ID,Name和ParentID。 ID列包含运行编号,该编号也用作主键。 ID也将是节点的Name属性。 Name列包含将成为treenode的Text属性的字符串,而ParentID是包含节点的父ID的列。 这是我的表格的样子: ID Name ParentID ====================== 1 A 0 2 A1 1 3 B 0 4 C 0 5 A2 1 6 B1 3 此表显示节点A是节点A1和A2的父节点。 ParentID等于“0”表示节点的父节点是根节点(硬编码)。 例如,节点A,B和C是根节点的子节点。 在填充树视图之前,我按ParentID对行进行排序。 我使用这两种方法填充树视图(这里的TreeNode节点是填充到树中的子节点): private void SearchParent(TreeView tree, String parentID, TreeNode node) { // Post: call TraverseParent method to search parent TreeNodeCollection collection = tree.Nodes; // Search […]

C# – 启动Invisible Process(CreateNoWindow和WindowStyle不工作?)

我有两个程序(.exe),我在.NET中创建。 我们称他们为师父和工人。 大师启动1个或更多工人。 Worker 不会与用户交互,但它是一个WinForms应用程序,它接收命令并根据从Master接收的命令运行WinForms组件。 我希望Worker应用程序完全隐藏运行 (当然,除了显示在任务管理器中)。 我认为我可以使用StartInfo.CreateNoWindow和StartInfo.WindowStyle属性完成此操作 ,但我仍然在表单中看到Client.exe窗口和组件。 但是,它不会显示在任务栏中。 Process process = new Process { EnableRaisingEvents = true, StartInfo = { CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden FileName = “Client.exe”, UseShellExecute = false, ErrorDialog = false, } }; 我需要做什么才能让Client.exe运行但不显示?

在发布时隐藏表单

我有一个只需要NotifyIcon按预期工作的程序。 所以我一直试图让程序启动时隐藏主窗体。 在frmMain_Load中,我尝试了两种方法 this.Hide(); this.Visible = false; 没有成功。 它们可以在其他方法中工作,例如NotifyIcon_MouseClick方法,但我希望它隐藏在Load中。 我在这里看到另一个问题,在那里Matias建议: BeginInvoke(new MethodInvoker(delegate { Hide(); })); 这有效,但是当我启动程序时,我可以看到表单快速闪烁。 它总比没有好,但我想知道是否有更好的解决方案。 谢谢。

C#将文件拖放到表单中

如何通过拖放将文件加载到表单? 会出现哪个事件? 我应该使用哪个组件? 以及如何在将文件拖放到表单后确定文件名和其他属性? 谢谢! 码 private void panel1_DragEnter(object sender, DragEventsArgs e){ if (e.Data.GetDataPresent(DataFormats.Text)){ e.Effect = DragDropEffects.Move; MessageBox.Show(e.Data.GetData(DataFormats.Text).toString()); } if (e.Data.GetDataPresent(DataFormats.FileDrop)){ } } 好的,这很有效。 文件怎么样? 我怎样才能获得文件名和扩展名? 这只是一个dragEnter动作。

当鼠标在点上时,查看图表点的值

我有一个图表,我希望用户在指针位于点上时看到值。 通过在页面中使用digEmAll的帮助查找图表中点的值 ,我可以编写以下代码: Point? prevPosition = null; ToolTip tooltip = new ToolTip(); void chart1_MouseMove(object sender, MouseEventArgs e) { var pos = e.Location; if (prevPosition.HasValue && pos == prevPosition.Value) return; tooltip.RemoveAll(); prevPosition = pos; var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea); foreach (var result in results) { if (result.ChartElementType == ChartElementType.PlottingArea) { chart1.Series[0].ToolTip = “X=#VALX, Y=#VALY”; […]

如何将当前屏幕捕获为图像?

我想为用户添加捕获应用程序中当前屏幕的function并通过电子邮件发送给我。 我有一个非技术性的用户群,所以我需要尽可能简单。 我打算让他们点击一个名为Help Me的菜单项! 然后将捕获当前的应用程序屏幕,希望作为jpg或png,然后打开Outlook并将图像添加为附件。 我正在阅读这篇关于Code Project的ScreenCapturepost,但它有点老了,并不是我想要的所以我想我会检查是否有更好的方法来做到这一点。 我该如何开始这个? 是否有图书馆或内置function足够? 谢谢!

预构建事件:使用XCopy将文件夹及其子文件和文件复制到构建目录中

我有Window Application,我有一些插件,它是我放在My Application文件夹结构中的ChildPlugins(参见文件夹结构图)。 我使用SVN作为源代码控制,因此,每个文件夹都有.SVN文件夹。 这是我的问题: 下图是我的插件目录结构。 所有文件夹都有一些与插件相关的文件。 现在我想通过使用Pre Built Event将所有文件夹(包含SubFolders)及其文件复制到我的Application Build输出路径。 在网上搜索后,我发现通过使用XCopy我可以实现我想要的。 通过使用下面的代码,我可以复制插件目录及其文件,但无法复制它的子文件夹和子文件夹文件。 xcopy “$(SolutionDir)Plugins\*.*” “$(SolutionDir)Windows\Host\Host.GUI\bin\x86\$(ConfigurationName)\Plugins\” /Y/D 我想复制文件夹&它是包含所有文件的所有子文件夹,并且想要排除.SVN 。 谁能指出我怎么能这样做? 谢谢。