|
|
|
C# ช่วยดูโค้ดให้หน่อยครับ ถ้าแบบนี้ต้องแก้โค้ดยังไงครับ |
|
|
|
|
|
|
|
Code (C#)
[ToolboxBitmap(typeof(TextBox))]
public partial class TextboxDialog : TextBox
{
private bool bLinkClicked;
public TextboxDialog()
{
InitializeComponent();
_lnk.Text = this.Text;
}
private System.Windows.Forms.LinkLabel _lnk;
private System.Windows.Forms.Button _btn;
// private System.Windows.Forms.TextBox _txt;
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this._lnk = new System.Windows.Forms.LinkLabel();
this._btn = new System.Windows.Forms.Button();
Font fnt = new System.Drawing.Font("Microsoft Sans Serif", 10.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(222)));
//
// _lnk
//
this._lnk.AutoSize = true;
this._lnk.BackColor = System.Drawing.SystemColors.ControlLight;
this._lnk.Font = fnt;
this._lnk.Location = new System.Drawing.Point(-1, 1);
this._lnk.Name = "_lnk";
this._lnk.Size = new System.Drawing.Size(79, 16);
this._lnk.TabIndex = 1;
this._lnk.TabStop = true;
this._lnk.Text = "linkLabel1";
this._lnk.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this._lnk_LinkClicked);
//
// _btn
//
this._btn.Dock = System.Windows.Forms.DockStyle.Right;
this._btn.Image = DATA_ASSET.Properties.Resources.finds;// global::TORServices.FormsTor.Properties.Resources.search32x32;
this._btn.Font = fnt;
this._btn.FlatStyle = FlatStyle.Flat;
this._btn.Location = new System.Drawing.Point(478, 0);
this._btn.Margin = new System.Windows.Forms.Padding(4);
this._btn.Cursor = Cursors.Hand;
this._btn.Name = "_btn";
// this._btn.Text = "...";
this._btn.Size = new System.Drawing.Size(20, this.Height);
this._btn.TabIndex = 2;
this._btn.UseVisualStyleBackColor = true;
this._btn.Click += new System.EventHandler(this._btn_Click);
//
// TextboxDialog
//
this.Controls.Add(this._lnk);
this.Controls.Add(this._btn);
this.Font = fnt;
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "TextboxDialog";
this.Size = new System.Drawing.Size(300, 24);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
#region _Property
private string _Path;
[System.ComponentModel.Browsable(true)]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Always)]
[System.ComponentModel.DefaultValue(@"C:")]
[System.ComponentModel.Category("TOR Setting")]
[System.ComponentModel.Description("Open Dialog is dispalyed and on success the contents of the Cell is replaced with the new path.")]
public string Directory
{
get
{
return _Path;
}
set
{
_Path = value;
}
}
#endregion
public string FullPath
{
get{return _Path + "\\" + this.Text;}
}
private void _btn_Click(object sender, EventArgs e)
{
try
{
string directory = (string.IsNullOrEmpty(Directory)) ? Application.StartupPath : Directory.Replace("AppPath", Application.StartupPath);
if (!System.IO.Directory.Exists(directory)) System.IO.Directory.CreateDirectory(directory);
OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
SaveFileDialog dialog1 = new SaveFileDialog();
dialog1.InitialDirectory = (!string.IsNullOrEmpty(directory)) ? directory : "";
dialog1.FileName = System.IO.Path.GetFileName(dialog.FileName);
if (dialog1.ShowDialog() == DialogResult.OK)
{
// SetPath(dialog.FileName);
this.Text = System.IO.Path.GetFileName(dialog1.FileName);
if (dialog.FileName != dialog1.FileName)
System.IO.File.Copy(dialog.FileName, dialog1.FileName, true);
}
}
}
catch (Exception)
{
}
}
#region Focus overrides
protected override void OnFontChanged(EventArgs e)
{
_btn.Font = Font;
_lnk.Font = Font;
}
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e); this.SwitchToEditMode(false);
}
protected override void OnGotFocus(EventArgs e)
{
base.OnGotFocus(e); this.SwitchToEditMode(true);
}
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
_lnk.Text = this.Text;
_lnk.Links.Clear();
_lnk.Links.Add(0, _lnk.Text.Length, FullPath);
}
private void _txt_TextChanged(object sender, EventArgs e)
{
}
private void _txt_BackColorChanged(object sender, EventArgs e)
{
_lnk.BackColor = this.BackColor;
}
public event EventHandler ButtonClick
{
add
{
_btn.Click += value;
}
remove
{
_btn.Click -= value;
}
}
public event EventHandler ButtonDoubleClick
{
add
{
_btn.DoubleClick += value;
}
remove
{
_btn.DoubleClick -= value;
}
}
protected void SwitchToEditMode(bool _bEditMode)
{
_lnk.Visible = !_bEditMode;
}
#endregion
#region Link Activation
private void _lnk_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
/* try
{*/
if (_lnk.Links.Count > 0)
{
if (System.IO.File.Exists(FullPath))
{
System.Diagnostics.Process.Start(FullPath);
}
else
{
MessageBox.Show("File Not Found"); return;
}
}
/* }
catch (Exception ex)
{
throw new ArgumentException("Link error!", ex);
}*/
}
#endregion
#region Focus Handling
private void _lnk_GotFocus(object sender, EventArgs e)
{
if (!bLinkClicked)
{
this.Focus();
bLinkClicked = false;
}
}
private void _lnk_MouseDown(object sender, MouseEventArgs e)
{
bLinkClicked = true;
}
#endregion
}
ตัวโค้ดไม่มี error ลาก User มาวางในฟอร์มก็ไม่มี Error ตอนรันก็รันได้ปกติ
แต่พอปิดโปรแกรมเปิดใหม่ก็มักจะเป็นแบบนี้ครับ
ไม่มีบอกว่า Error ตรงไหน บรรทัดไหน เลยไปไม่เป็น ครับ
Tag : .NET, Win (Windows App), C#, VS 2013 (.NET 4.x)
|
|
|
|
|
|
Date :
2018-10-16 12:05:25 |
By :
lamaka.tor |
View :
925 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Error ก็เกิดจาก Control ที่เราสร้างครับ ผมเป็นประจำ เลยไม่ค่อยอยากสร้างอะไร ใช้ของเดิมๆ 555 ปลอดภัยกว่า
อันนี้อาจจะเกิดจาก Code หรือไม่ก็มันตีกันเองมั้ง ถ้าอย่างไงลองเข้าไปที่ frmAsset_Setting.designer.cs
แล้วค้นหาชื่อ control ของเรามองหา code และลองลบทิ้ง จากนั้นลองเปิดดูใหม่ครับ
ทางแก้ต้องลองถามท่านหน้าฮี (คิดถึงจัง พักนี้เงียบๆ) หรือไม่ลองเขียนเป็นแบบ dll น่าจะไม่มีปัญหามั้งครับ
ลองเบิงเด้อ เอาหยังบ่ จะกลับ LA
|
|
|
|
|
Date :
2018-10-17 10:33:56 |
By :
บัญดิษฐ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมสร้าง DatagridView มาใช้งารเองมันก็มักจะเป็นเหมือนกัน แต่ผมทำการ ปิด Form ทังหมดแล้วทำการ Build Solution ก่อนค่อยเปีด Form นั้นใหม่ครับ มันได้ผลนะ
|
|
|
|
|
Date :
2018-10-18 08:13:45 |
By :
outhai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|