Tag: 用户界面

创建多个表单GUI

我正在c#中开发一个非常基本的应用程序Windows Form Application,它将值插入到SQL数据库中。 我有四种不同的forms 一个用于输入客户详细信息 一个用于输入任何交易细节 一个用于分别搜索客户/交易。 将所有四种forms联系在一起的最佳方式是什么? 我只是进入C#所以最基本的方式是理想的。 我认为它在我脑海中工作的方式是你运行程序并最终在一个屏幕上显示四个相应表格的四个按钮。 当您按下按钮时,会打开一个单独的窗口,显示插入表单。 然后,您可以关闭表单以返回主开始屏幕 C#中的基本代码是什么? 例如,可以说5种不同的布局 Main (包含按钮) TransactionEntry AddressEntry TransactionSearch AddressSearch

在listview列标题中的列区域之外绘图

是否可以拥有列表视图的整个列标题部分? (包括列标题右侧的区域)? ListView位于详细信息视图中。 这里的答案表明剩余空间可以与最后一列标题一起绘制: http : //www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic32927.aspx 但它似乎根本不起作用 – 在标题区域之外没有任何东西。 建议的解决方案基于在传递的边界之外绘制: if (e.ColumnIndex == 3) //last column index { Rectangle rc = new Rectangle(e.Bounds.Right, //Right instead of Left – offsets the rectangle e.Bounds.Top, e.Bounds.Width, e.Bounds.Height); e.Graphics.FillRectangle(Brushes.Red, rc); } 可用Graphics实例的ClipBounds属性指示未绑定区域(从大负数到大正数)。 但是在最后一列的列标题区域之外没有任何内容。 有人有解决方案吗?

选中后,在轨迹栏控件周围隐藏虚线轮廓

在C#winforms中,是否有一种方法可以不显示在使用轨迹栏控件时显示的虚线焦点轮廓边框? 细节:这个轮廓对我来说看起来有点俗气,所以我只是为了不美观而拍摄美学。 谢谢, 亚当

从后台线程更新UI

这只是一个奇怪的问题。 哪一个是从另一个线程更新UI的最佳方式。 首先,这一个: private delegate void MyDelegateMethod(); void MyMethod() { if (unknowncontrol.InvokeRequired) { this.BeginInvoke(new MyDelegateMethod(MyMethod)); return; } unknowncontrol.property = “updating!”; } 另一方面: Invoke((System.Threading.ThreadStart)delegate() { unknowncontrol.property = “updating!”; }); 或者,有更好的方法吗? 当然这是针对WinForms的,对于WPF来说是调度员。 WPF的代码如何? 我问,’因为,过去我在使用上述两个选项从引发的事件更新UI时遇到了错误。 类似的错误:“没有可用的源代码”。 我假设我们所有人都见过他们:D。 感谢,并有一个愉快的一天!

C#创建一个控件数组

是否可以创建一个控件数组? 如果数组中的多个控件共享同一个事件处理程序,有没有办法获取控件的索引?

使用自动化框架在textfield / textbox上设置文本并获取更改事件

我想使用Mircosoft UI Automation框架在textfield / textbox元素上设置文本,这意味着在ControlType.Edit或ControlType.Document的AutomationElement 。 目前我正在使用TextPattern从其中一个AutomationElements获取文本: TextPattern tp = (TextPattern)element.GetCurrentPattern(TextPattern.Pattern); string text = tp.DocumentRange.GetText(-1).Trim(); 但是现在我想在AutomationElement设置一个新文本。 我在TextPattern类中找不到这个方法。 所以我正在尝试使用ValuePattern但我不确定这是否是正确的方法: ValuePattern value = element.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern; value.SetValue(insertText); 还有其他方法来设置文本值吗? 另一个问题是如何在Edit / Document元素上更改文本时获取事件? 我尝试使用TextChangedEvent但是在更改文本时我没有触发任何事件: AutomationEventHandler ehTextChanged = new AutomationEventHandler(text_event); Automation.AddAutomationEventHandler(TextPattern.TextChangedEvent, element, TreeScope.Element, ehTextChanged); private void text_event(object sender, AutomationEventArgs e) { Console.WriteLine(“Text changed”); }

在窗口应用程序中写入命令行

我正在尝试让我的基于WinForm的C#与命令行合作,但是我很难让它发挥得很好。 例如,我有这个代码: [STAThread] static void Main(string[] args) { foreach (string s in args) { System.Windows.Forms.MessageBox.Show(s); Console.WriteLine(“String: ” + s); } Mutex appSingleton = new System.Threading.Mutex(false, “WinSyncSingalInstanceMutx”); if (appSingleton.WaitOne(0, false)) { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //start logger Logger.singleton.makeOpen(true); Application.Run(new MainForm(false)); } catch (Exception) { } finally { appSingleton.Close(); Logger.singleton.makeOpen(false); } } else { System.Windows.Forms.MessageBox.Show(“Sorry, only one […]

如何从c#visual studio 2012中的endregion标签跳转到区域标题?

如果我有以下内容 #region blah; blahblah; ….. moar; #endregion 如果我在屏幕上看到#endregion标签,我怎么能跳到顶部#region标签? 有捷径吗?

从多个工作线程更新UI(.NET)

我有一个我正在研究的宠物项目,它有多个工作线程。 将所有内容输出到控制台变得越来越难以遵循,因此我想开发一个每个线程有一个输出区域的UI。 我想知道线程向UI发送更新的最佳方式。 我有两个想法: 1)让每个线程在新数据可用时设置“DataUpdated”标志,并让UI定期检查新数据。 2)创建每个线程,回调到新的数据可用时要调用的UI Update(…)方法。 我目前倾向于(2)有两个原因:我不喜欢“检查”每个线程的想法,因为这是我的第一个multithreading应用程序,(2)似乎比它可能更简单。 我想知道: 在简单性和效率方面哪个选项更可取? 你有任何实施技巧(2)或类似的东西(即更多的事件驱动)?

如何更改组框边框的颜色?

在C#.NET中,我试图以编程方式更改组框中边框的颜色。 更新:在我们切换到.NET之前,当我在winforms系统上工作时,问了这个问题。