Tag: 用户界面

在Windows窗体应用程序中单击按钮时隐藏窗体并显示另一个窗体

我正在做一个Windows窗体应用程序的应用程序。 首先,会出现某种forms,在用户点击下一个按钮后,应隐藏此表单并显示另一个表单。 我试着这样做。 我设法隐藏了当前的表格,但下一个表格不会显示。 这是我的尝试: 这是按钮的事件处理程序 private void button1_Click_1(object sender, EventArgs e) { if (richTextBox1.Text != null) { this.Visible=false; } else MessageBox.Show(“Insert Attributes First !”); } 这是主要function: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form2 form2 = new Form2(); Form1 form1 = new Form1(); form2.Hide(); Application.Run(form1); while (true) { if (form1.Visible == false) form2.Show(); } }

WPF样式/模板inheritance

我正在尝试学习WPF,并试图通过使用样式使默认的.Net控件看起来不同。 使用C#作为我的首选语言,尽管下面的所有代码都是WPF标记。 我今天用新主题设置了gmail(见下图),从而让我自己成为挑战,可以在WPF中完成。 我设法实现的是通过使用带有控件模板和触发器的样式来创建中间按钮Spam 。 右侧和左侧按钮非常相似,但只有2个不同。 它们的左侧或右侧的圆角半径为1,边距为15,而中间的按钮则将它们都设置为0。 问题! Q1。 可以通过某种类型的inheritance来完成,而不是复制整个样式并仅更改这两个属性。 右侧和左侧按钮的位置基于现有样式,但它会进行这两种视觉变化。 我在创建新样式时已尝试过BasedOn属性,但无法编辑所需的属性。 Q2。 样式是在WPF中解决此问题的正确方法。 在WinForms中,您将创建一个自定义控件,该控件具有链接到枚举的可见属性,即您单击按钮,样式选项可能是Left,Middle,Right。 Q3。 最难的问题直到最后。 是否可以制作它,所以如果一个按钮应用了我的风格。 然后当您将其背景颜色设置为蓝色时。 然后按钮保持渐变但不是它们是灰白色的,它们现在是一片蓝色。 即背景线性渐变画笔基于,而不是覆盖已应用于按钮的背景颜色。 或者这些需要定义单独的样式。 我个人看不到没有某种类型的代码可以实现这一点,即在WPF标记中使用单个画笔制作渐变画笔。 即按钮如下方的蓝色按钮和灰色/普通按钮 我的风格 ps如果您发现上面WPF中的任何初学者错误,请随时向我指出。

C#GUI编程启动

所以….我从来没有真正做过GUI编程应用程序。 也就是因为上学以来我一直被困在C ++领域。 但是自从我十二月gradle以来,我认为学习我想要研究一段时间的东西是很好的(当我找工作的时候)。 请不要将此标记为“主观”我只是简单地询问我需要“知道”开始。 即GUI编程。 我不习惯它……我也从未去过。 这不是他们在学校关注的东西(例如我的高级设计是一个网络摄像头鼠标的东西,但在GUI的方式很少) 我已经看到很多关于C#是用于快速开发的优秀GUI编程工具…..但我真的不知道那里有什么。 我知道“QT”,我习惯于C ++。 但是我不太熟悉“选择”GUI语言。 我喜欢在Windows上编程,但最近我的大部分内容都在Unix中(主要是因为我的操作系统类)。 我对.net一无所知,我听说过一些叫做WPF的东西? 这是.net …..或…..的一部分吗? 我只是有点困惑在哪里开始。 谢谢

Windows 7风格的Dropshadow采用无边框forms

精简版: 目标: C#中无边界WinForm中的深色,黑暗,Windows 7阴影 已知的现有解决方案1:使用CreateParams的简单XP风格的阴影。 问题:太弱,太轻,太难看。 已知的现有解决方案2:用位图替换forms的GDI。 问题:失去使用控件的function,仅作为启动画面使用。 这篇文章的目标:找到这个问题的中位数解决方案或者更好的解决方案。 。 。 。 长版: (编辑:我指的是沿着任何窗体边界的阴影,如果不清楚的话。)我知道有一种方法可以在C#中使用以下方法制作XP风格的阴影: C#Code 1 – 简单的XP风格的阴影(问题:轻,弱,丑) // Define the CS_DROPSHADOW constant private const int CS_DROPSHADOW = 0x00020000; // Override the CreateParams property protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ClassStyle |= CS_DROPSHADOW; return cp; } } 但是,我试图弄清楚如何使它们看起来像Windows 7中的做(更深和更大的阴影),并且无法找出这样做的最佳方式。 我现在创建了一个方法,它可以让我覆盖整个表单GDI,看起来就像一个启动画面(不是我的信用): […]

将Console.WriteLine()重定向到文本框

我正在使用C#在Visual Studio 2010中构建此应用程序。 基本上有2个文件,form1.cs(这是windows窗体)和program.cs(所有逻辑都在这里)。 //form1.cs public partial class Form1 : Form { //runButton_click function } //program.cs class Program { static void Main() { while(blah-condition) { //some calculation Console.WriteLine(“Progress ” + percent + “% completed.”); } } } 有一个运行按钮和一个空白文本框 。 当用户点击Run 按钮时 ,program.cs将执行一些任务并使用Console.WriteLine()不断地将进度打印到控制台(命令提示符)。 问题:如何打印到form1上的文本框而不是打印到命令提示符? 我需要在没有任何用户操作的情况下持续打印进度。 提前致谢! 顺便说一句,它不必是文本框,它可以是标签或其他可以采用文本的东西。 我选择了文本框,因为它对我来说更有意义。

当process.WaitForExit()时,Visual C#GUI停止响应; 用来

我正在使用Visual C#2005(net framework 2)创建一个GUI应用程序。 我使用以下代码来启动一个过程: Process process = new Process(); process.StartInfo = new ProcessStartInfo(“app.exe”); process.StartInfo.WorkingDirectory = “”; process.StartInfo.Arguments = “some arguments”; process.Start(); process.WaitForExit(); 我希望我的应用程序等到这个过程完成,所以我使用了WaitForExit。 但是当app.exe运行时,GUI Windows会冻结。 我希望它响应(例如按下取消按钮),但我不希望代码继续,因为还有另一个进程要启动。 提前致谢!

确定Program是否是.NET中的活动窗口

我有一个C#/。NET应用程序,我想实现以下行为: 我有一个弹出菜单。 每当用户点击应用程序中不是弹出菜单的任何内容时,我都希望关闭弹出菜单。 但是,每当用户不在应用程序中时,我都不希望发生任何事情。 我正试图通过LostFocus事件来管理这个,但是我无法确定我的应用程序是否是活动窗口。 代码看起来像这样。 private void Button_LostFocus(object sender, System.EventArgs e) { if (InActiveWindow()) { CloseMenu() } else { // not in active window, do nothing } } 我需要知道的是如何实现InActiveWindow()方法。

Masked TextBox输入左对齐

我的winforms应用程序上有一个蒙版文本框,如果用户点击屏蔽文本框内部,光标将从该位置开始。 例如,如果他们在蒙版文本框的中间单击,则中间会有一个闪烁的光标。 如何将光标行为设置为默认位于屏蔽文本框的最左侧部分?

向TextBox添加新的数据行

我正在做一个聊天客户端,目前我有一个按钮,可以在点击时将数据显示到多行文本框。 这是将数据添加到多行文本框的唯一方法吗? 我觉得这是非常低效的,因为如果谈话变得非常长,那么字符串也会变得非常长。 private void button1_Click(object sender, EventArgs e) { string sent = chatBox.Text; displayBox.Text += sent + “\r\n”; }

在C#2.0中创建向导的最佳方法是什么?

我有一个winforms应用程序,用户将创建库存项目,创建时间需要发生许多不同的事情。 我认为这个UI应该是某种向导,但我不确定实现这一目标的最佳方法。 我已经看到了几个第三方向导控件,我也看到了使面板可见/不可见的手动实现。 人们过去使用过的最好的方法是什么,易于实现,如果需要,还可以在以后轻松地向向导添加“页面”?