在ac#win表单中禁用Alt+ F4以阻止用户关闭表单的最佳方法是什么?
我使用窗体作为弹出对话框来显示进度条,我不希望用户能够关闭它.
我有一个类似于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"Run Code Online (Sandbox Code Playgroud)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
发生了什么,我该如何解决?我知道这不是形式创建的问题,因为有时它会工作一次并且下次失败,那么问题是什么呢?
PS.我真的很擅长WinForms,有没有人知道一系列很好的文章解释整个模型以及如何使用它?
我有一个包含TextBoxC#的表单,我将其设置为字符串,如下所示:
textBox.Text = str;
Run Code Online (Sandbox Code Playgroud)
显示表单时,为什么texbox中的文本会突出显示/选中?
在我的.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) 如何限制DateTimePicker只选择时间?我不知道当你按下右边的按钮时,如何禁用日历控制DateTimePicker.
我想在两个表单(c#)之间传递值.我该怎么做?
我有两种形式:Form1和Form2.
Form1包含一个按钮.当我单击该按钮时,Form2应该打开,Form1应该处于非活动模式(即不可选).
Form2包含一个文本框和一个提交按钮.当我在Form2的文本框中键入任何消息并单击提交按钮时,Form2应该关闭,Form1应该使用提交的值突出显示.
我该怎么做?有人可以通过一个简单的例子帮助我做到这一点.
我有一个表单"fm",这是一个简单的信息窗口,每隔10分钟(fm.Show();)打开一次.
我如何能够每隔10分钟检查一下"fm"形式是否打开,如果它打开则将其关闭并再次打开!
现在表单fm总是被创建,form fm = new form();
所以当我尝试检查表单是否打开时,它将始终为false并打开一个新窗口,即使之前有一个表单!
我需要一个工具给它一个唯一的身份,然后检查这个具有唯一身份的表单是否被打开!
我不想只更新表单上的数据(fm),因为我有一个复杂的按钮信息.
表格名称是 "UpdateWindow"
解决使用以下内容:
__PRE__
我正在尝试从Windows窗体提供指向我公司网站的链接.我希望表现良好,并使用用户首选的浏览器启动.
从Windows窗体应用程序在用户的默认浏览器中打开URL的最佳方法是什么?
我已经玩了大约一年的C#控制台应用程序,我想继续创建GUI应用程序.除了基本的Java应用程序之外,我从未进行任何GUI开发,但我想继续使用C#.我应该开始学习Windows窗体还是直接跳到WPF?有很大的不同吗?WPF是建立在Windows窗体之上还是完全不同?
winforms ×10
c# ×8
.net ×3
c#-4.0 ×1
directory ×1
modal-dialog ×1
tabcontrol ×1
textbox ×1
windows ×1
wpf ×1