Tag: 用户界面

如何使用ImageLocation将图像放入我的图片框?

我在我的面板中创建了一个图片框,我想在本地填充图像。 这是我到目前为止所做的,以下代码只是我的面板创建代码的一小部分。 PictureBox picture = new PictureBox { Name = “pictureBox”, Size = new Size(100, 50), Location = new Point(14, 17) }; p.Controls.Add(picture); picture.ImageLocation = @”..\Image\1.jpg”; 它确实有效但不完全,因为在我启动了我的c#windows窗体应用程序后,它显示了一个小的白色框,中间有一个红叉而不是图像。 知道怎么解决吗?

如何在DataGridViewCell中托管控件以进行显示和编辑?

我已经看到如何:Windows窗体DataGridView单元中的主机控件,它解释了如何托管用于编辑DataGridView中的单元格的控件。 但是如何托管用于显示单元格的控件? 我需要在同一个单元格中显示文件名和按钮。 我们的UI设计师是一个平面设计师,而不是程序员,因此我必须将代码与他所绘制的内容相匹配,无论是否可行 – 或明智 – 或不是。 我们正在使用VS2008并使用C#编写.NET 3.5,如果这有所不同的话。 更新:’网络建议创建一个自定义DataGridViewCell,它作为第一步主持一个面板; 有谁做过吗?

是否有Xamarin xaml文件的设计者?

我目前正在开始使用Xamarin。 现在我想知道UI是否有任何forms的设计器,所以我不必一次又一次地启动应用程序来设计时测试UI?

C#:Windows窗体:在面板/图片框中获取击键?

我正在使用Windows窗体为游戏制作关卡编辑器。 该表单有几个下拉菜单,文本框等,用户可以在其中键入信息。 我想让CTRL + V或CTRL + A等命令可用于游戏世界本身,而不是文本操作。 游戏世界由Panel包含的PictureBox表示。 此事件处理程序不会触发: private System.Windows.Forms.Panel canvas; // … this.canvas = new System.Windows.Forms.Panel(); // … this.canvas.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.canvas_PreviewKeyDown); 这样做的首选方式是什么? panel甚至可以接收键盘输入吗? 我想允许用户在处理文本输入时使用copy / paste / select-all命令,但在将对象放入游戏世界时则不允许。

在另一个线程内操作UI元素

我试图在WinForms C#应用程序中创建一个单独的线程,启动一个控制ProgressBar(marquee)的后台工作程序。 问题在于,当我尝试将条形图设置为可见时,它什么都不做,我尝试过多种forms的Invoke,但它们似乎没有帮助。 从单独的线程调用以下方法progressBarCycle 。 BackgroundWorker backgroundWorker = new BackgroundWorker(); public void progressBarCycle(int duration) { backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork); backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted); backgroundWorker.WorkerReportsProgress = true; backgroundWorker.WorkerSupportsCancellation = true; backgroundWorker.RunWorkerAsync(duration); } private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; worker.ReportProgress(0); DateTime end = DateTime.Now.AddMilliseconds((int)e.Argument); while (DateTime.Now […]

C#中表单的Control属性中的控件顺序

我对FlowLayoutPanels添加到表单的controls属性的顺序有一个特殊的问题。 这是我试过的, 我在垂直条带中从左到右添加了7个FlowLayoutPanel到C#窗口应用程序。 然后我再次从左到右标记流量布局为1,2,3,… 7。 现在在表单的加载处理程序中,我编写了以下代码段, foreach (FlowLayoutPanel aDaysControl in this.Controls) { MessageBox.Show(aDaysControl.Tag.ToString()); } 我希望消息以1,2,… 7的顺序出现。 但我按相反的顺序得到它(7,6,……)。 有人可以帮我解决我做的错误吗? 保留订单背后的原因, 我正在尝试使用代表一天的每一行进行日历控制。 如果一个月从星期三开始,那么我需要在第一行(星期一)和第二行(星期二)添加一个空标签。 所以顺序有点重要

如何将DataGridView定位到特定行(以便所选行位于底部)?

作为一个类似于这个问题的问题 ,我还有一个带有DataGridView的应用程序。 我想定位行,使特定行位于列表可见部分的底部。 这是响应按钮单击将行向下移动一行。 我想保持我正在移动的行上的选择(我已经有了这部分工作)。 如果有很多行,则所选行可能会移动到可见区域下方。 我想向下滚动,直到它位于可见区域的底部。 FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣。 有任何想法吗? 谢谢。

隐藏RichTextBox的滚动条

我正在尝试编写一个像DarkRoom这样的简单文本编辑器,其中只包含一个RichTextBox(或者一个TextBox)。 我的问题是我不能使用鼠标滚轮滚动,除非我有一个垂直滚动条。 有没有办法隐藏这个滚动条,仍然能够用鼠标滚轮滚动? 到目前为止,我有几个想法如何做到这一点,但不知道如何实现它们。 使用MouseWheel事件重新创建滚动代码 更改滚动条的视觉样式以隐藏它或使其不太明显 编写我自己的TextBox小部件 将滚动条与其他内容重叠以隐藏它们 PS:使用任何win32的东西都不是一个选择。

单独线程上的C#UI

我一直在各种论坛,教程或SO答案中看到建议在单独的线程上运行UI,然后是程序的其余部分以保持响应。 这在实践中是如何完成的? 这是否意味着编辑program.cs以在加载表单之前启动一个线程? 或者它是否意味着从表单内部激活的任何非平凡操作都会分叉一个线程并使用它? 还是一些设置? 你怎么用它?

如何从C#中的控制台窗口回放焦点?

我有一个C#控制台应用程序(A)打开黑色Windows控制台。 有时在启动时它会从另一个需要关注的程序(B)中窃取焦点。 问题:如何从A.exe到B.exe重点关注? A -> Focus -> B 细节: 程序B不是我的,我无能为力。 它有一个GUI,多个窗口,其中一个需要焦点(它可能是一个模态对话窗口)。 程序A不需要任何关注,也不会以任何方式与程序B交互。 程序A通过启动快捷方式启动,基本上在后台运行(它已发布但仍在开发中,这就是控制台窗口的原因) 我有几分钟/几分钟的时间来检查并重点关注。