标签: form-load

C#WinForm - 加载屏幕

我想问一下如何在程序加载时出现加载屏幕(只是图片或其他东西),并在程序加载完成后消失.

在发烧友的版本中,我看到了显示的进程条(%).你怎么能拥有它,你如何计算显示的百分比?

我知道有一个Form_Load()事件,但我没有看到Form_Loaded()事件,或者%作为属性/属性.

c# screen loading form-load

11
推荐指数
1
解决办法
4万
查看次数

解释Visual Studio 2010及更高版本,WinForms和WPF中的关键错误

尝试将以下代码放在LoadWinForms或LoadedWPF的事件处理程序中.

Dim doc As New XmlDocument
Dim nsmgr As New XmlNamespaceManager(Nothing) 'this line throws an exception
Run Code Online (Sandbox Code Playgroud)

问题是不抛出异常,并发生堆栈损坏.它可能有不同的副作用,具体取决于IDE - 见下文.

  • 受影响的IDE是:2008,2010和2012(我可以测试的那些).2010重置堆栈状态,并从子/处理程序返回,就像没有发生任何事情(但没有继续其他语句).2012可能会警告用户应用程序失败并尝试运行compatibility mode.之后的下一次运行与2010年相同.2008正确抛出异常,但仅限于默认配置(AnyCPU).将平台目标切换到x86也会使问题再次出现在2008年.
  • 受影响的框架是WinForms和WPF.控制台应用程序和ASP.NET似乎工作正常..NET v2.0-4.5.
  • 受影响的范围目前只是Load事件.将此代码放入按钮使其工作.
  • 受影响的构建配置=任何.试过默认DebugRelease.

为什么我认为它是一个错误是因为它可以使对象处于不稳定状态 - 它们没有完成初始化,这不是预期的行为.重要的是,没有人会知道它发生了,因为它不会引发异常.根据您的设计,您最终可能会在数据库中显示不正确的数据,这在最坏的情况下可能会导致严重的后果.

有没有人能够解释为什么会发生这种情况以及是否有解决方法?

wpf winforms form-load

7
推荐指数
1
解决办法
615
查看次数

在表单加载后立即调用方法的最佳方法是什么?

我有一个C#windows窗体应用程序.我当前设置它的方式,当Form1_Load()运行时,它检查恢复的未保存数据,如果找到一些,它会提示用户是否要打开该数据.当程序运行时,它可以正常工作但是消息框会立即显示,并且主程序表单(Form1)在用户单击是或否之后才会显示.我想首先弹出Form1然后弹出消息框提示.

现在,在我在Form中创建一个计时器之前解决这个问题,在Form1_Load()方法中启动计时器,然后在第一个Timer Tick事件中执行检查和用户提示.这种技术解决了这个问题,但似乎可能有更好的方法.

你们有更好的想法吗?

编辑:我想我也使用后台工作人员做类似的事情.通过调用方法返回到表单线程所有麻烦似乎有点傻了,所有的垃圾只是让它延迟了几毫秒!

.net c# winforms method-call form-load

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

如何使用C#单击表单加载上的按钮

如何使用C#单击泡沫负载上的按钮?我的按钮被称为:btnFacebookLogin

我试过以下这个:

private void Form1_Shown(Object sender, EventArgs e) 
{
   btnFacebookLogin.PerformClick(); 
}
Run Code Online (Sandbox Code Playgroud)

我正在使用WinForms C#.NET 4

.net c# winforms form-load

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

Form1_Load即使在添加处理程序后也不会触发

自从我涉足C#以来,已经有很长一段时间了,但是我有一段时间让我的form_load开火了.这是最简单的事我无法想象它为什么不会开火!任何援助将不胜感激.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AppName_v4._0___TestRoom_Addon{
    public partial class Form1 : Form{

        public Form1() {
            InitializeComponent();
            this.Load += new EventHandler(this.Form1_Load); //FIRES!
        }

        private void Form1_Load(object sender, EventArgs e) {
            webKitBrowser1.Dock = DockStyle.Fill; //DOES NOT FIRE!
            webKitBrowser1.Navigate("http://192.168.0.10/?zoneid=11");
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

  • 我用断点来验证线路不是他的
  • 表格确实显示 结果表格的截图

我也试过以下但没有成功......

namespace AlphaEntry_v4._0___MailRoom_Addon{
    public partial class Form1 : Form{

        public Form1() {
            InitializeComponent();

        }

        protected override void OnLoad(EventArgs e)
        {
            webKitBrowser1.Dock = DockStyle.Fill;
            webKitBrowser1.Navigate("http://192.168.0.10/?zoneid=11");

            base.OnLoad(e); …
Run Code Online (Sandbox Code Playgroud)

c# event-handling winforms form-load

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

Windows 窗体中的图形

加载表单时,CreateGraphics()不应该返回图形对象吗?

我的意思是,在 Form1_Load 事件上我可以编写以下内容吗?

Graphics x;
private void Form1_Load(object sender, EventArgs e)
{
    x = this.CreateGraphics();
}
Run Code Online (Sandbox Code Playgroud)

如果不是,那为什么?

我认为当您创建一个新表单时,构造函数会启动该表单的所有对象。那么为什么不包括图形对象呢?

我这么问是因为当我尝试在 form_load 上绘制时,它不会显示我绘制的内容。

主要原因是:我想创建一个带有棋盘的游戏 - 因此当用户单击新游戏时 - 首先 - 我将启动棋盘并绘制它。在onPaint事件中我只想绘制面板的当前状态。所以我认为板的初始状态应该在formLoad事件上绘制。

.net c# winforms form-load

1
推荐指数
1
解决办法
2933
查看次数

无法在C#中的表单加载上绘制椭圆

我正在尝试在包含C#中的formload上的PNG的图片框中绘制一些椭圆。当我在下面执行代码时,我会看到椭圆半秒钟,然后再也看不到它们了。

当我单击图片框时,我可以绘制一个椭圆,但是当我最小化表单时,它们不再显示。

我读到您不应该将绘图代码放在formload中,而应该放在OnPaint方法中,这就是我所做的。我不知道该怎么办了。谢谢。(请注意,我已经留下一些代码注释以显示我尝试过的内容)。

public partial class FormParterre : Form
{
    Graphics g;
    float circleSize = 15;
    //Brushes rouge = new Brushes (Brushes.Red);

    ReservationBilletSiegeDAO reservationBilletSiegeDAO = new ReservationBilletSiegeDAO();
    SiegeDAO siegeDAO = new SiegeDAO();

    List <Siege> sieges;
    List<ReservationBilletSiege> rbs;
    ReservationBillet reservationBillet = new ReservationBillet();
    ReservationBilletSiege reservationBilletSiege;

    SolidBrush semiTransBrush;


    public FormParterre()
    {
        InitializeComponent();
        pictureBox1.Image = new Bitmap("./parterre.png");
        g = pictureBox1.CreateGraphics();


    }

    public FormParterre(ReservationBillet rb)
    {
        reservationBillet = rb;
        pictureBox1.Image = new Bitmap("./parterre.png");
        g = pictureBox1.CreateGraphics();



        InitializeComponent();
    }

    protected override void OnPaintBackground(PaintEventArgs e)
    { …
Run Code Online (Sandbox Code Playgroud)

c# paint form-load drawellipse

1
推荐指数
1
解决办法
3943
查看次数