/ / Vlastné ovládanie používateľov v riešení nenájdete? - c #, winforms

Vlastné používateľské ovládanie nie je možné nájsť v riešení? - c #, winforms

Vytvoril som jednoduchú Sudoku aplikáciu, kde každé 3x3 štvorce je užívateľskou kontrolou, s týmto kódom skeletu v CellBlock.Designer.cs a nič iné ako automaticky vygenerovaný kód v systéme CellBlock.cs:

namespace Sudoku
{
partial class CellBlock
{

private System.ComponentModel.IContainer components = null;

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}


private void InitializeComponent()
{
this.CellOne = new System.Windows.Forms.MaskedTextBox();
this.CellFour = new System.Windows.Forms.MaskedTextBox();
this.CellFive = new System.Windows.Forms.MaskedTextBox();
this.CellSix = new System.Windows.Forms.MaskedTextBox();
this.CellTwo = new System.Windows.Forms.MaskedTextBox();
this.CellThree = new System.Windows.Forms.MaskedTextBox();
this.CellSeven = new System.Windows.Forms.MaskedTextBox();
this.CellEight = new System.Windows.Forms.MaskedTextBox();
this.CellNine = new System.Windows.Forms.MaskedTextBox();
this.SuspendLayout();
//
// CellOne
//
this.CellOne.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.CellOne.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.CellOne.Location = new System.Drawing.Point(8, 8);
this.CellOne.Mask = "0";
this.CellOne.Name = "CellOne";
this.CellOne.PromptChar = " ";
this.CellOne.Size = new System.Drawing.Size(26, 26);
this.CellOne.TabIndex = 0;
this.CellOne.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//CellTwo through CellNine omitted for brevity

//
// CellBlock
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Controls.Add(this.CellNine);
this.Controls.Add(this.CellEight);
this.Controls.Add(this.CellSeven);
this.Controls.Add(this.CellThree);
this.Controls.Add(this.CellTwo);
this.Controls.Add(this.CellSix);
this.Controls.Add(this.CellFive);
this.Controls.Add(this.CellFour);
this.Controls.Add(this.CellOne);
this.Name = "CellBlock";
this.Size = new System.Drawing.Size(107, 107);
this.ResumeLayout(false);
this.PerformLayout();

}

private System.Windows.Forms.MaskedTextBox CellOne;
private System.Windows.Forms.MaskedTextBox CellFour;
private System.Windows.Forms.MaskedTextBox CellFive;
private System.Windows.Forms.MaskedTextBox CellSix;
private System.Windows.Forms.MaskedTextBox CellTwo;
private System.Windows.Forms.MaskedTextBox CellThree;
private System.Windows.Forms.MaskedTextBox CellSeven;
private System.Windows.Forms.MaskedTextBox CellEight;
private System.Windows.Forms.MaskedTextBox CellNine;
}

}

Tieto súbory sú v rovnakom riešení ako Sudoku.cs, hlavný súbor. Prostredníctvom ponuky projektu som jednoducho pridal používateľské ovládanie. Toto je kód v Sudoku.Designer.cs, opäť automaticky generované programom Visual Studio.

namespace Sudoku
{
partial class Sudoku
{

private System.ComponentModel.IContainer components = null;

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Sudoku));
this.cellBlock1 = new Sudoku.CellBlock();
this.cellBlock2 = new Sudoku.CellBlock();
this.cellBlock3 = new Sudoku.CellBlock();
this.cellBlock4 = new Sudoku.CellBlock();
this.cellBlock5 = new Sudoku.CellBlock();
this.cellBlock6 = new Sudoku.CellBlock();
this.cellBlock7 = new Sudoku.CellBlock();
this.cellBlock8 = new Sudoku.CellBlock();
this.cellBlock9 = new Sudoku.CellBlock(); //errors occur at these lines

}


private CellBlock cellBlock1;
private CellBlock cellBlock2;
private CellBlock cellBlock3;
private CellBlock cellBlock4;
private CellBlock cellBlock5;
private CellBlock cellBlock6;
private CellBlock cellBlock7;
private CellBlock cellBlock8;
private CellBlock cellBlock9;

}
}

Myslím si, že je to všetko v poriadku, aj keď somvynechanie časti automaticky generovaného kódu kvôli stručnosti. Keď zostavím riešenie, dostanem 9 takýchto chýb: Názov typu „CellBlock“ neexistuje v type „Sudoku.Sudoku“

odkazovanie na riadky, ktoré čítajú: this.cellBlock1 = new Sudoku.CellBlock();atď. Myslel som, že možno musím pridať odkaz CellBlock, even though it"s within the same solution, but when I clickPridať odkaz “, v rámci projektu nie je nič uvedené.

odpovede:

2 pre odpoveď č. 1

premenujte svoj menný priestor na iný ako Sudoku a potom roztok vyčistite a znova ho postavte.

odstrániť prúd CellBlock ovládacie prvky a znova ich pridajte.


1 pre odpoveď č. 2

Myslím, že by to mohlo byť preto, že vaša trieda Sudoku je rovnaké ako vo vašom mennom priestore Sudoku takže kompilátor si myslí, že by mala byť nazývaná vnútorná trieda CellBlock vnútri triedy Sudoku, Nemám k dispozícii runtime a kompilátor, takže sa nemôžem pokúsiť reprodukovať.

Pokúste sa znova zvážiť názov priestoru názvov alebo názov triedy, aby mal vlastný identifikátor.