|
分類:[C#]
WindowsXP SP3
VisualStudio2008 C#の環境です。
データのバックアップや繰り越しといった動作でメニューからバックアッププログラムをprocess.start()で起動します。起動するプログラムはwindowsフォームプログラムでボタンはなくラベルが一つとプログレスバーが一つあるだけで、フォームを表示してそのまま繰り越し処理をして終わればすぐに終了するのですが、プログラム実行中にformがちゃんと表示されませんでしたので下記のように作り直したら、フォームは出るのですが、処理が始まるとプログレスバーが止まってしまいます。
proccess.start()で呼び出したプログラムが処理を実行する間、formを表示して、formの中にあるプログレスバーを動かしていたいのですがどうしたらプログレスバーを動かしながら処理をできるようになるでしょう? アドバイスお願いいたします。
program.csに
namespace 繰越
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (Form1 frm = new Form1())
{
string RD;
frm.Show();
MessageBox.Show("開始");
RD = CDBA.DBF("得意先", "得意先 > ' '", "得意先 ASC", MKST.SM40OLD, MKST.SM40T);
while (true)
{
if (RD != null) { break; }
Array.Copy(MKST.SM40OLD, MKST.SM40NEW, MKST.SM40T);
for (int CT1 = 41; CT1 > 39; CT1--) { MKST.SM40NEW[CT1] = MKST.SM40OLD[CT1 - 1]; }
long TT = 0;
for (int CT2 = 27; CT2 < 39; CT2++) { TT = TT + Convert.ToInt64(MKST.SM40OLD[CT2]); }
MKST.SM40NEW[39] = TT;
for (int CT3 = 15; CT3 < 27; CT3++) { MKST.SM40NEW[CT3 + 12] = MKST.SM40OLD[CT3]; MKST.SM40NEW[CT3] = 0; }
RD = CDBA.DBU("得意先", "得意先 = '" + MKST.SM40OLD[0].ToString() + "'", MKST.SM40NEW, MKST.SM40F, MKST.SM40M,
MKST.SM40T);
if (RD != null) { MessageBox.Show("更新に失敗しました。"); }
RD = CDBA.DBF("得意先", "得意先 > '" + MKST.SM40OLD[0].ToString() + "'", "得意先 ASC", MKST.SM40OLD, MKST.SM40T);
}
frm.Close();
}
}
}
}
form1に
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 繰越
{
public partial class Form1 : Form
{
public static string RD;
public Form1()
{
InitializeComponent();
}
private void Form1_Activated(object sender, EventArgs e)
{
progressBar1.Style = ProgressBarStyle.Marquee;
}
private void Form1_Load(object sender, EventArgs e)
{
label1.ForeColor = Color.White;
label1.BackColor = Color.Black;
label2.ForeColor = Color.Black;
label2.BackColor = Color.GhostWhite;
this.BackColor = Color.GhostWhite;
}
}
}
|