私は今度は中程度のwinformsアプリケーションをコーディングしています...毎回、特定のフォームの作成時にこの例外が発生します。私は過去になく、何が起こっているかを適切にudnerstandingせずに、それを解決し'System.OutOfMemoryException':ウィンドウハンドルを作成中にエラーが発生しました。
...
は不可解な部分は、今、私はこれを取得、私はこのフォームをfinnishedし、それをテストしたときにすべてがうまく昨日働いたということです。
型「System.OutOfMemoryExceptionに」の未処理の例外は、のSystem.Windows.Forms.dll
追加情報に を発生します。エラーはウィンドウハンドルを作成します。
public partial class PonovniIspisRacunaForm : Form { DataTable dnevniPrometTable; DataTable kontrolnaTrakaTable; DataTable ukupniDnevniPrometTable; DataTable stavkeRacunaTable; ZisCode.Hibernate.Mdb.DataModel dnevniPrometDataModel; ZisCode.Hibernate.Mdb.DataModel kontrolnaTrakaDataModel; OsnovniPodaci.Porezi.Stope stope; string brojRacuna; string ZKI; string JIR; string Operator; //decimal ukupno = 0.00m; decimal tarifa; decimal kolicina; decimal iznos; decimal porez; decimal porez25; decimal porez05; decimal porez13; decimal povratnaUkupno; decimal osnov25; decimal osnov05; decimal osnov13; //decimal nabavna; PrintDocument printDocument; public PonovniIspisRacunaForm() { InitializeComponent(); } private void FinancijskiRekapitular_Load(object sender, EventArgs e) { stope = new OsnovniPodaci.Porezi.Stope(); // popunjava današnji datum this.dtpDatum.Value = DateTime.Today; // Get Data Table za određeni datum: dnevniPrometDataModel = ZisCode.DataModels.Get("DnevniPromet"); kontrolnaTrakaDataModel = ZisCode.DataModels.Get("KontrolnaTraka"); PrintSetup(); ukupniDnevniPrometTable = MergeDnevniKontrolna(); if (ukupniDnevniPrometTable.Rows.Count != 0) { FillComboBox(); } } private void FillComboBox() { cbBrojRacuna.DataSource = ZisCode.Methods.DataTableOperations.SortDataTable(ukupniDnevniPrometTable, "Dokument", "DESC") // orderbydescending .AsEnumerable().GroupBy(row => row.Field<string>("Dokument")).Select(group => group.First()).CopyToDataTable(); // groupby brojRacuna-Dokument cbBrojRacuna.DisplayMember = "Dokument"; // Broj Računa cbBrojRacuna.ValueMember = "Dokument"; cbBrojRacuna.SelectedIndex = 0; } private void PrintSetup() { // priprema za ispis printDocument = new PrintDocument(); printDocument.DefaultPageSettings.PaperSize = new PaperSize("Racun size", 295, 500); printDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(CreateRekapitular); // uklanja poruku dialog box (printing ..) kod ispisa PrintController printController = new StandardPrintController(); printDocument.PrintController = printController; // popravlja font printPreview.UseAntiAlias = true; } }
この線より具体的には:
例外がコードブロックでスローさthis.dtpDatum.Value = DateTime.Today。 なぜですか?私は考えていない...
私は、コンストラクタでdateTimePickerを設定しようとしましたが、私はウィンドウハンドルとは無関係に別の例外があります。
私は他の質問でこのケースについて読んだことがありますが、実際には私は何もクリックしませんでした。
Winforms issue - Error creating window handle
これらの2つの答えは、答えが曖昧にされているので、私を助け、私は最初の場所で働くことになっている方法を知って処分することを期待しないでください。ヘルプ、私はn00bです!UPDATEそれはあなただけのメモリが不足しているということかもしれにOutOfMemoryあなたの例外はあるので、私は
あなたはPrintSetupとFillComboBox(のためのいくつかのコードを追加することができます引き起こされたと思います
ます。private voidでしたか?いくつかの一般的な変数がありますか?フォームを閉じるときに何をしますか? –
@WaiFungAuYeungはい私は変数の束を持っていますし、私はそれをどうすればいいですか? – ChenChi
というフォームをロードするときにこの例外がスローされても、私はそのコードをさらにコード – ChenChi