标签: winforms

62
推荐指数
3
解决办法
10万
查看次数

如何从控制台应用程序运行winform?

如何在控制台应用程序中创建,执行和控制winform?

c# console-application winforms

62
推荐指数
5
解决办法
10万
查看次数

如何扩展WinForm的Dispose方法?

我从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仍然显示此消息.我是否被覆盖,我可以安全地忽略它,还是我应该采取另一种方式做到这一点?

c# dispose fxcop winforms

62
推荐指数
2
解决办法
3万
查看次数

如何在Picturebox上获取滚动条

我有PictureBox picture.

我用:

picture.Size = bmp.Size;
picture.Image = bmp;
Run Code Online (Sandbox Code Playgroud)

假设有两个整数maxWidthmaxHeigth.
我希望picture在其大小超过maxWidth和/或时添加垂直/水平滚动条maxHeight.我怎样才能做到这一点?

c# scroll scrollbar picturebox winforms

62
推荐指数
2
解决办法
7万
查看次数

从另一个线程写入TextBox?

我无法弄清楚如何使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)

c# multithreading winforms

61
推荐指数
5
解决办法
14万
查看次数

如何在任务栏顶部全屏显示Windows窗体?

我有一个需要全屏运行的.net Windows应用程序.当应用程序启动时,任务栏显示在主窗体的顶部,只有在通过单击或使用ALT-TAB激活窗体时它才会消失.表单的当前属性如下:

  • 的WindowState = FormWindowState.Normal
  • 最顶层=正常
  • 大小= 1024,768(这是它将要运行的机器的屏幕分辨率)
  • FormBorderStyle =无

我尝试在表单加载中添加以下内容,但没有一个对我有用:

  • this.Focus(); (在给焦点之后.Focus属性总是假的)
  • this.BringToFront();
  • this.TopMost = true; (但这在我的场景中并不理想)
  • this.Bounds = Screen.PrimaryScreen.Bounds;
  • this.Bounds = Screen.PrimaryScreen.Bounds;

有没有办法在.NET中执行它,或者我必须调用本机Windows方法,如果是这样,我们非常感谢代码片段.

非常感谢

.net c# taskbar fullscreen winforms

61
推荐指数
6
解决办法
27万
查看次数

按退出键时如何关闭表单?

我有一个小表单,当我按下Windows窗体应用程序中的按钮时出现.

我希望能够通过按退出键关闭表单.我怎么能这样做?我不确定要使用的事件(form_closing?)?

c# winforms

61
推荐指数
4
解决办法
9万
查看次数

如何以编程方式选择ListView中的项目?

我试图以编程方式选择ListView中的第一个项目,但它似乎没有被选中.我使用以下代码:

if (listView1.Items.Count > 0)
    listView1.Items[0].Selected = true;
Run Code Online (Sandbox Code Playgroud)

其实我之前遇到过这个问题,但我不记得我是怎么解决它的!

.net c# listview selection winforms

61
推荐指数
4
解决办法
15万
查看次数

如何将文件文档发送到打印机并打印?

这是基本前提:

我的用户点击了一些小玩意儿,一个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类)

我怎么做到这一点?

c# printing pdf .net-4.0 winforms

61
推荐指数
7
解决办法
12万
查看次数

如何在Usercontrol中创建一个事件并在主窗体中处理它?

我有一个自定义用户控件,我想做一些相对简单的事情.

当用户控件的值发生变化时,如果数字向下,请让主窗体更新显示窗口.

如果NUD不在用户控件中,这不是问题,但我似乎无法弄清楚如何通过mainform而不是usercontrol处理事件.

c# user-controls event-handling winforms

61
推荐指数
3
解决办法
12万
查看次数