标签: winforms

如何禁用Alt + F4结账表格?

在ac#win表单中禁用Alt+ F4以阻止用户关闭表单的最佳方法是什么?

我使用窗体作为弹出对话框来显示进度条,我不希望用户能够关闭它.

.net c# winforms

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

在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke

我有一个类似于Greg D讨论的SafeInvoke Control扩展方法(减去IsHandleCreated检查).

我从System.Windows.Forms.Form以下地址调用它:

public void Show(string text) {
    label.SafeInvoke(()=>label.Text = text);
    this.Show();
    this.Refresh();
}
Run Code Online (Sandbox Code Playgroud)

有时(此调用可能来自各种线程),这会导致以下错误:

System.InvalidOperationException 发生了

Message="在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke."

Source="System.Windows.Forms"

StackTrace:
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at System.Windows.Forms.Control.Invoke(Delegate method)
at DriverInterface2.UI.WinForms.Dialogs.FormExtensions.SafeInvoke[T](T control, Action`1 action) 
in C:\code\DriverInterface2\DriverInterface2.UI.WinForms\Dialogs\FormExtensions.cs:line 16
Run Code Online (Sandbox Code Playgroud)

发生了什么,我该如何解决?我知道这不是形式创建的问题,因为有时它会工作一次并且下次失败,那么问题是什么呢?

PS.我真的很擅长WinForms,有没有人知道一系列很好的文章解释整个模型以及如何使用它?

multithreading winforms

76
推荐指数
4
解决办法
13万
查看次数

为什么在显示表单时突出显示(选中)TextBox中的文本?

我有一个包含TextBoxC#的表单,我将其设置为字符串,如下所示:

textBox.Text = str;
Run Code Online (Sandbox Code Playgroud)

显示表单时,为什么texbox中的文本会突出显示/选中?

c# textbox winforms

76
推荐指数
3
解决办法
8万
查看次数

检查.NET中的目录和文件写入权限

在我的.NET 2.0应用程序中,我需要检查是否有足够的权限来创建和写入目录的文件.为此,我有以下函数尝试创建一个文件并向其写入一个字节,然后删除自己以测试权限是否存在.

我认为检查的最佳方法是实际尝试并执行此操作,捕获发生的任何异常.虽然我对一般的异常捕获并不是特别高兴,所以有更好的或者更可接受的方式吗?

private const string TEMP_FILE = "\\tempFile.tmp";

/// <summary>
/// Checks the ability to create and write to a file in the supplied directory.
/// </summary>
/// <param name="directory">String representing the directory path to check.</param>
/// <returns>True if successful; otherwise false.</returns>
private static bool CheckDirectoryAccess(string directory)
{
    bool success = false;
    string fullPath = directory + TEMP_FILE;

    if (Directory.Exists(directory))
    {
        try
        {
            using (FileStream fs = new FileStream(fullPath, FileMode.CreateNew, 
                                                            FileAccess.Write))
            {
                fs.WriteByte(0xff);
            }

            if (File.Exists(fullPath))
            {
                File.Delete(fullPath);
                success …
Run Code Online (Sandbox Code Playgroud)

.net c# directory file-permissions winforms

75
推荐指数
5
解决办法
11万
查看次数

使DateTimePicker仅在WinForms中作为TimePicker工作

如何限制DateTimePicker只选择时间?我不知道当你按下右边的按钮时,如何禁用日历控制DateTimePicker.

c# winforms

75
推荐指数
3
解决办法
9万
查看次数

将值从一个表单发送到另一个表单

我想在两个表单(c#)之间传递值.我该怎么做?

我有两种形式:Form1和Form2.

Form1包含一个按钮.当我单击该按钮时,Form2应该打开,Form1应该处于非活动模式(即不可选).

Form2包含一个文本框和一个提交按钮.当我在Form2的文本框中键入任何消息并单击提交按钮时,Form2应该关闭,Form1应该使用提交的值突出显示.

我该怎么做?有人可以通过一个简单的例子帮助我做到这一点.

c# modal-dialog winforms

74
推荐指数
4
解决办法
32万
查看次数

如何检查窗体是否已打开,如果是,则将其关闭?

我有一个表单"fm",这是一个简单的信息窗口,每隔10分钟(fm.Show();)打开一次.

我如何能够每隔10分钟检查一下"fm"形式是否打开,如果它打开则将其关闭并再次打开!

现在表单fm总是被创建,form fm = new form();
所以当我尝试检查表单是否打开时,它将始终为false并打开一个新窗口,即使之前有一个表单!

我需要一个工具给它一个唯一的身份,然后检查这个具有唯一身份的表单是否被打开!

我不想只更新表单上的数据(fm),因为我有一个复杂的按钮信息.

表格名称是 "UpdateWindow"

解决使用以下内容:

__PRE__

c# winforms

74
推荐指数
5
解决办法
20万
查看次数

从Windows窗体打开URL

我正在尝试从Windows窗体提供指向我公司网站的链接.我希望表现良好,并使用用户首选的浏览器启动.

从Windows窗体应用程序在用户的默认浏览器中打开URL的最佳方法是什么?

.net winforms

73
推荐指数
5
解决办法
8万
查看次数

73
推荐指数
8
解决办法
17万
查看次数

WPF或Windows窗体

我已经玩了大约一年的C#控制台应用程序,我想继续创建GUI应用程序.除了基本的Java应用程序之外,我从未进行任何GUI开发,但我想继续使用C#.我应该开始学习Windows窗体还是直接跳到WPF?有很大的不同吗?WPF是建立在Windows窗体之上还是完全不同?

c# windows wpf winforms c#-4.0

73
推荐指数
4
解决办法
5万
查看次数