私は私のクラスで2つのコンストラクタを持っている:C#Winフォームのイベントハンドラ
public partial class Fiche_Ordre : Le_MainForm
{
public Fiche_Ordre()
{
InitializeComponent();
Constuct_Page();
}
public Fiche_Ordre(string OrderID): this()
{
Pers_Ordre oPersOrdr = oOrder_BL.Get_OrdreOne_BL(ClientID, Convert.ToInt32(OrderID), false);
textEdit_RefExpred.Text = oPersOrdr.RefExpd;
lookUpEdit_Agence.EditValue = oPersOrdr.Agence;
lookUpEdit_Transport.EditValue = oPersOrdr.Transporteur;
lookUpEdit_Dest.EditValue = oPersOrdr.DestId;
..................
}
public void Constuct_Page()
{
try
{
ClientID = Program.Le_ClientID;
....
#region LookUpEdidt Destinataire
lookUpEdit_Dest.Properties.DataSource = Auxiliaire_BL.FillCombo_BL(false, ClientID).Tables["ComboFill"];
lookUpEdit_Dest.Properties.ValueMember = "CODE_DEST";
lookUpEdit_Dest.Properties.DisplayMember = "CODE_DEST";
LookUpColumnInfoCollection coll_Dest = lookUpEdit_Dest.Properties.Columns;
// A column to display the ProductID field's values.
coll_Dest.Add(new LookUpColumnInfo("CODE_DEST", 0, "Code Destinataire"));
// A column to display the ProductName field's values.
coll_Dest.Add(new LookUpColumnInfo("RS_NOM", 0, "Raison Social"));
// Set column widths according to their contents and resize the popup, if required.
lookUpEdit_Dest.Properties.BestFitMode = BestFitMode.BestFitResizePopup;
// Enable auto completion search mode.
lookUpEdit_Dest.Properties.SearchMode = SearchMode.AutoComplete;
// Specify the column against which to perform the search.
lookUpEdit_Dest.Properties.AutoSearchColumnIndex = 1;
lookUpEdit_Dest.EditValueChanged += new EventHandler(lookUpEdit_Dest_EditValueChanged);
#endregion
...
}
私はpublic Fiche_Ordre()
を使用する場合、それはnew EventHandler(lookUpEdit_Dest_EditValueChanged);
を発生しませんので、それは奇妙です。 public Fiche_Ordre(string OrderID)
を使用すると、イベントハンドラが起動します。
これは正常ですか?
それがメインフォームから
public partial class Le_MainForm : DevExpress.XtraEditors.XtraForm
{
public Le_MainForm()
{
InitializeComponent();
this.Name = "MainUSER";
if (Program.IsFA) barButtonItem_OrdList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
}
private void barButtonItem_CreatOrdreAller_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
Close_AllForm();
Program.AllerRetour = "Ordre Aller";
Fiche_Ordre f_Fiche = new Fiche_Ordre();
f_Fiche.Show();
}
と第二のコンストラクタを呼び出す最初constuctor私は
public partial class Liste_Ordres : Le_MainForm
{
private void Liste_DobleClic(object sender, EventArgs e)
{
try
{
Program.OrderId = gridView_Liste_Ordres.GetFocusedRowCellValue("NO_ORDRE").ToString();
this.Hide();
Fiche_Ordre f_Fiche = new Fiche_Ordre(gridView_Liste_Ordres.GetFocusedRowCellValue("NO_ORDRE").ToString());
f_Fiche.Show();
}
catch (Exception excThrown)
{
MessageBox.Show(excThrown.Message);
}
}
からそれを呼び出すには、事前にありがとうございます。
PS:最初のコンストラクタは新しい空白ページを作成するだけで、2番目のコンストラクタはNOT NEW(編集ページ)を作成するため、IDを渡してすべてのコントロール(テキストボックス、メモなど)を埋め込みます。 )
2番目のコンストラクタでは何のためにOrderIDを使用しますか? – McGarnagle
@dbasemanどのように問題を解決するのに役立ちますか? – Likurg
@Likurgよく、2つのコンストラクタの唯一の違いだとすれば、それは適切かもしれないと思ったのですか? – McGarnagle