可能重复:
创建单实例应用程序的正确方法是什么?
如何强制C#.net应用程序在Windows中只运行一个实例?
如何在控制台应用程序中创建,执行和控制winform?
我从FxCop得到这个警告:
"'RestartForm'包含IDisposable类型的字段'RestartForm.done':'ManualResetEvent'.更改'RestartForm'上的Dispose方法以在此字段上调用Dispose或Close."
好的,我明白这意味着什么以及为什么这是需要做的...除了System.Windows.Forms.Form不允许你覆盖.Close()或者.Dispose(),所以该怎么办?目前我正在运行此解决方案:
private void RestartForm_FormClosing(object sender, FormClosingEventArgs e)
{
done.Set();
done.Close();
}
Run Code Online (Sandbox Code Playgroud)
这适用于我的应用程序...但FxCop仍然显示此消息.我是否被覆盖,我可以安全地忽略它,还是我应该采取另一种方式做到这一点?
我有PictureBox picture.
我用:
picture.Size = bmp.Size;
picture.Image = bmp;
Run Code Online (Sandbox Code Playgroud)
假设有两个整数maxWidth和maxHeigth.
我希望picture在其大小超过maxWidth和/或时添加垂直/水平滚动条maxHeight.我怎样才能做到这一点?
我无法弄清楚如何使C#Windows窗体应用程序从一个线程写入文本框.例如,在Program.cs中,我们有标准的main()来绘制表单:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Run Code Online (Sandbox Code Playgroud)
然后我们在Form1.cs中:
public Form1()
{
InitializeComponent();
new Thread(SampleFunction).Start();
}
public static void SampleFunction()
{
while(true)
WindowsFormsApplication1.Form1.ActiveForm.Text += "hi. ";
}
Run Code Online (Sandbox Code Playgroud)
我完全错了吗?
UPDATE
以下是bendewey提供的工作代码示例:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
new Thread(SampleFunction).Start();
}
public void AppendTextBox(string value)
{
if (InvokeRequired)
{
this.Invoke(new Action<string>(AppendTextBox), new object[] {value});
return;
}
textBox1.Text += value;
}
void SampleFunction()
{
// Gets executed on a seperate thread and
// doesn't block the …Run Code Online (Sandbox Code Playgroud) 我有一个需要全屏运行的.net Windows应用程序.当应用程序启动时,任务栏显示在主窗体的顶部,只有在通过单击或使用ALT-TAB激活窗体时它才会消失.表单的当前属性如下:
我尝试在表单加载中添加以下内容,但没有一个对我有用:
有没有办法在.NET中执行它,或者我必须调用本机Windows方法,如果是这样,我们非常感谢代码片段.
非常感谢
我有一个小表单,当我按下Windows窗体应用程序中的按钮时出现.
我希望能够通过按退出键关闭表单.我怎么能这样做?我不确定要使用的事件(form_closing?)?
我试图以编程方式选择ListView中的第一个项目,但它似乎没有被选中.我使用以下代码:
if (listView1.Items.Count > 0)
listView1.Items[0].Selected = true;
Run Code Online (Sandbox Code Playgroud)
其实我之前遇到过这个问题,但我不记得我是怎么解决它的!
这是基本前提:
我的用户点击了一些小玩意儿,一个PDF文件被吐出到他的桌面上.我有办法将此文件发送到打印机队列并将其打印到本地连接的打印机吗?
string filePath = "filepathisalreadysethere";
SendToPrinter(filePath); //Something like this?
Run Code Online (Sandbox Code Playgroud)
他会多次这样做.对于教室里的每个学生,他必须打印一张小型成绩单.所以我为每个学生生成一个PDF,我想自动化打印过程,而不是让用户生成pdf,打印,生成pdf,打印,生成pdf,打印.
有关如何处理此问题的任何建议?我在Windows XP上使用Windows Forms .NET 4运行.
我发现这个StackOverflow问题,其中接受的答案表明:
创建文件后,可以通过命令行打印它们(可以使用System.Diagnostics命名空间中的Command类)
我怎么做到这一点?
我有一个自定义用户控件,我想做一些相对简单的事情.
当用户控件的值发生变化时,如果数字向下,请让主窗体更新显示窗口.
如果NUD不在用户控件中,这不是问题,但我似乎无法弄清楚如何通过mainform而不是usercontrol处理事件.