精华内容
下载资源
问答
  • winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错。  若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法。  例如:添加一个名textbox1的TextBox控件,...

      当winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错。

      若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法。

      例如:添加一个名为textbox1的TextBox控件,想将它的Visible设置为false,则执行下面的代码即可

      textbox1.BeginInvoke(new Action(() => { textbox1.Visible= false; }));

     

     

      另外WPF中,想达到winform同样的效果,利用Dispatcher即可。

      

      

    转载于:https://www.cnblogs.com/yupeiyuan/p/6186277.html

    展开全文
  • 作者在文章中已经说得很清楚,将Form的Visible属性设置为false是不行的,因为在Application.Run方法的内部,主窗体的Visible属性将被强制设置为true。 此外,有朋友在回复中提供了“不启动任何窗体”的办法,即...

    望程序启动时不显示主窗体,而只是在SystemTray显示一个图标;当用户点击该图标时,才第一次显示出主窗体来。

    作者在文章中已经说得很清楚,将Form的Visible属性设置为false是不行的,因为在Application.Run方法的内部,主窗体的Visible属性将被强制设置为true。
    此外,有朋友在回复中提供了“不启动任何窗体”的办法,即:

    using (new MainForm())
    {
    Application.Run();
    }

    然后在NotifyIcon的Click事件中显示MainForm就可以了。
    可以参考他的文章(http://ly4cn.cnblogs.com/archive/2006/03/16/351205.html)。

    这个方法的确是解决了这个问题;但是由于切断了主窗体和Application之间的联系,因此必须使用Application.Exit来关闭程序。这样做仍然有些不自然,且有一些安全隐患;那么到底有没有更好的方法呢?

    一个方法就是使用ApplicationContext。

    ApplicationContext实质上就是一个Application与主窗体之间的连接器,掌管着二者之间的互动关系。
    其中最主要的,就是负责在主窗体关闭时结束线程。既然如此,我们只要根据需要自定义一个ApplicationContext就可以了:

    internal class HideOnStartupApplicationContext : ApplicationContext
    {
    private
    Form mainFormInternal;

    // 构造函数,主窗体被存储在mainFormInternal
    public
    HideOnStartupApplicationContext(Form mainForm)
    {
    this.mainFormInternal =
    mainForm;

    this.mainFormInternal.Closed += new
    EventHandler(mainFormInternal_Closed);
    }

    // 当主窗体被关闭时,退出应用程序
    void mainFormInternal_Closed(object
    sender, EventArgs e)
    {
    Application.Exit();
    }
    }

    随后,我们只需要在Main当中像下面这样调用既可:

    static void Main()
    {
    //...


    HideOnStartupApplicationContext context = new HideOnStartupApplicationContext(new MainForm());
    Application.Run(context);
    }

    这样,MainForm根本不用去考虑窗口与应用程序的关系,安安心心做它的“主窗口”就可以了。

    此外,既然明白了ApplicationContext掌管着窗口结束与程序结束的关系,我们就可以用它来做出一些有趣的东西:
    比如MSDN上就给出了一个“双主窗口”——同时显示2个Form,关闭其中任何一个都不会导致程序结束,只有全部关闭了才会结束程序。有兴趣的朋友可以参看MSDN关于ApplicationContext的资料,那里给出了详细的说明和范例代码。
    再如,要设计一个“向导(Wizard)”类的程序,使用ApplicationContext也是最佳选择——它可以轻松控制Form到Form的流程,以及Form的启动与关闭,使得你的每个Form更加模块化,减少Form之间的依赖。



    本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2010/01/05/1639905.html,如需转载请自行联系原作者 
    展开全文
  • 改变项目的属性,关闭模式设置为当最后一个窗体关闭的时候结束程序。 Dim frm As New Form1  frm.Show()Me.Close()2.用一个线程启动新的窗体,不需要更改项目属性。 Private Sub frmStarup_L

    VB.NET 在启动窗体中需要动态启动新的窗体之后关闭或者隐藏自己,一般我们会想到下面的方法

     

    Dim frm As New Form1
     frm.Show()
    Me.Visible = False
     Me.Hide()

     

    这样启动窗体没有隐藏。

     

     

    解决方法有三种

     

    1. 改变项目的属性,关闭模式设置为当最后一个窗体关闭的时候结束程序。

    Dim frm As New Form1
     frm.Show()

    Me.Close()

     

    2.用一个线程启动新的窗体,不需要更改项目属性。

     

    3.新建一个启动项目,启动项目由Main()方法开始。

    新建一个ConsoleApplication,更改ConsoleApplication的Application Type为:Window Form Application

     

    展开全文
  • 最近在做项目的时候,发现MDI父窗体的主菜单的左边,子窗体...1.菜单合并问题,把菜单中的AllowMerge属性设置为false; 2.显示在窗体ICON问题,如下方法解决:   在主菜单的ItemAdded事件编写如下代码:   priva...

    最近在做项目的时候,发现MDI父窗体的主菜单的左边,当子窗体最大化的时候,显示了子窗体的图标ICON。以及如果子窗体含有菜单的话,子窗体的菜单会显示再父窗体上。

     

    在网上搜索了好多文章,最后终于发现了解决方法。

    1.菜单合并问题,把菜单中的AllowMerge属性设置为false;

    2.显示在窗体ICON问题,如下方法解决:

     

    在主菜单的ItemAdded事件编写如下代码:

     

    private   void menuMain_ItemAdded( object  sender, ToolStripItemEventArgs e)
    {
        
    if  (e.Item.Text.Length == 0   ||  e.Item.Text == " 还原(&R) "   ||  e.Item.Text == " 最小化(&N) " )
        
    {
            e.Item.Visible 
    =   false ;
        }

    }

     

    大家可以参考下面两篇文章做详细参考:

    http://www.cnblogs.com/frostcity/archive/2008/08/20/1272355.html

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3337697&SiteID=1

    展开全文
  • 菜单合并问题,把菜单中AllowMerge属性设置为false; 2.显示在窗体ICON问题,如下方法解决:   在主菜单ItemAdded事件编写如下代码: private void menuMain_ItemAdded( object sender
  • Cancel属性设置按钮是否为取消按钮,取值有True和False,取值为True时,该按钮为取消按钮,在按键盘上“ESC”键时就相当于按了按了这个按钮,取值为False时,该按钮不是取消按钮,一个窗体中只能有一个控件...
  • ListBox控件是Windows 窗体的一个空间,ListBox 控件显示一个项列表,用户可从中选择一项或多项。 如果项总数超出可以显示的项数,则自动... MultiColumn 属性设置为 false 时,列表框以单列形式显示项,并且会...
  • Form类KeyPreview属性

    2014-11-12 20:49:00
    首先需要知道一个知识点,Form控件,... Form窗体中包含可以接收焦点和键盘事件控件时,如TextBox,如果KeyPreview属性设置为false(默认值),那么Form类是不响应键盘消息,消息被直接发送至拥有焦点控...
  • 如果将 DataGridView 控件设置为根据其数据源中数据自动...或者,也可通过将 Visible 属性设置为 false 来隐藏列。要在某些情况下显示隐藏列或需要访问未显示列中数据时,此方法很有用。 移除自动生成列...
  • 这样DataGridView控件无法在设计视图中对列进行编辑即使新添加了列,也会在运行后既显示新添加列,又显示自动绑定列在运行时通过代码将dataGridView控件AutoGenerateColumns属性设置为false也没有用那么,...
  • KEYPREVIEW 属性

    2008-11-27 12:11:00
    问题引入: 程序中窗体快捷键不好用,或者是窗体代码不响应........... KeyPreview 属性 获取或设置一个值,该值指示在将键事件传递到具有焦点控件前,...属性设置为 true 时,窗体将接收所...
  • 问题引入:程序中窗体快捷键不好用,或者是窗体代码不响应...........KeyPreview 属性获取或设置一个值,该值指示在将键事件传递到具有焦点控件...备注属性设置为 true 时,窗体将接收所有 KeyPress、...
  • 在开发wpf项目时,需要调用外部com组件,同时需要制作透明窗口,于是问题出现了,我们在设置 AllowsTransparency="True"后,com组件显示不出来了,只有透明属性为false才能正常显示,此时找到了...
  • tabstop属性用来确定控件是否高亮显示,那些不能与用户交互控件tabstop属性设置为false。 with语句能将一个项目纳入到使用该项目所有语句中,无需每次都对其进行设置。简单来讲就是能同时对一个控件多个...
  • WinFom基本属性

    2016-09-19 16:15:00
    常用窗体属性: AutoSroll:如果窗体内容超出了窗体范围,自动出现滚动条。默认是false。 AutoSize:调节窗口大小时,保证使...当设置为manual(手动)值时,Location属性才能有作用。CenterScreen值为屏幕中间...
  • VB控件属性使用大全

    2011-12-15 12:02:34
    获得或设置一个图象,包含了PaletteMode被设置为Custom时用于调色板对象。 PaletteMode 获得或设置一个值,决定对于对象控件使用哪个调色板。取值为: 0 Halftone 1 UseZOrder 2 Custom Picture 窗体背景...
  • 最近,由于项目需要,我制作了一个叫xMinTime控件,该控件主要用于可选择时、分来设置时间,对于时分获取与设置,使用一个属性叫HourMinute自定义结构体实现,其中xMinTime控件界面如下: HourMinute...
  • 场景: WinForms窗体上有一个DateTimePicker控件,ShowCheckBox设置为true,控件放在TabControl非活动TabPage中。 这个DateTimePicker控件...Date属性值为空时,要将DateTimePickerChecked属性设置为false
  • 有时候把LabelAutoSize属性设置为True,当窗体显示时候,Label中内容可能会显示不完全,只能把AutoSize设置为False,把Label调整成能显示出内容大小。还有一种更简单解决方法。把FormFont属性进行如下...
  • 最近项目中遇到这样一个问题。...加之我们需要设置DialogShowInTaskBar属性为False,即不显示在TaskBar上,用户就会发现什么都点不了。   解决这个问题方法就是把原有WPF Window
  • 有时候把LabelAutoSize属性设置为True,当窗体显示时候,Label中内容可能会显示不完全,只能把AutoSize设置为False,把Label调整成能显示出内容大小。还有一种更简单解决方法。把FormFont属性进行如下...
  • 有时候把LabelAutoSize属性设置为True,当窗体显示时候,Label中内容可能会显示不完全,只能把AutoSize设置为False, 把Label调整成能显示出内容大小。还有一种更简单解决方法。把FormFont属性进行如下...
  • 有时候把LabelAutoSize属性设置为True,当窗体显示时候,Label中内容可能会显示不完全,只能把AutoSize设置为False,把Label调整成能显示出内容大小。还有一种更简单解决方法。把FormFont属性进行如下...
  • .net之旅-ValidationSummary(37)

    千次阅读 2007-01-11 14:09:00
    在处理用户输入时(如提交窗体时),Web 窗体框架将用户输入传递给相关联一个或多个验证控件。... IsValid 属性为 false 时,显示ValidationSummary 控件。它“轮询”页上每个验证控件,聚
  • C# 常用控件大全

    2015-04-20 20:25:07
    值为true时,是子窗体的容器,值为false时,不是子窗体的容器。 (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键...
  • CheckBox控件

    2018-10-31 10:25:00
    如以下代码示例, CheckBox 控件的 CheckedChanged 引发事件时,窗体的 AllowDrop 属性设置为 false。如果选中复选框,限制用户交互的情况。 private void checkBox1_CheckedChanged(object sender, System....

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

当窗体的属性设置为false