C# WinApp อยาก fixsize usercontrol ไม่ให้เปลี่ยน หรือให้เปลี่ยนตาม ฟรอน ยังไงครับ
ปกติ Size พวกนี้มันก็กว้าง*สูง เป็น Pixcel อยู่แล้วนะครับ หรือว่าตอนนี้มันขยายความ Resolution ครับ
Date :
2017-06-12 09:53:13
By :
mr.win
ไม่มีใครที่ชอบทำ Control ไว้ใช้เองกันมั่งรึครับ 5555
Date :
2017-06-14 17:36:36
By :
lamaka.tor
ผู้ใช้งาน(มีระดับ) เขาไม่รู้จัก User Control
--- เขาอยากได้/ผมอยากได้ ป้อน A, B, C, ...
--- วิ่งเข้า GL และรายงานที่หลากหลาย
------ แน่นอนว่า ความรู้ด้านโปรแกรมที่คุณ/คนอื่นฯมีอยู่ มันก็ช่วยอะไรไม่ได้มากนัก(แทบจะไม่มีประโยชน์)
...
...
...
เขาต้องการสูตร --> @A +1234 *(1/100)/1000) เขาต้องทำได้ด้วยตัวเอง
--- +55555 สูตรทางเคมีของคุณมันก็ตอบโจทย์ได้(แต่ไม่มากพอ )
Date :
2017-06-14 19:26:30
By :
หน้าฮี
@amaka.tor/All
สิ่งที่พวกคุณคิด/เพื่อนฯของคุณ ผมพูดแบบโหดร้ายมากฯ +55555 "ผมโยนทิ้งลงถังขยะหมด"
...
...
...
...
ปล. ผมไม่ธรรมดา ผมผ่านมาก่อนทุกฯ ความโกรธ/เฉยฯ --> +55555
Date :
2017-06-14 19:33:55
By :
หน้าฮี
@amaka.tor/All
ชั้นเชิงโปรแกรมมิ่งทุกฯภาษา พวกคุณสู้ผมไม่ได้หรอก
--- C++/C#/VB.NET, JAVA, PHP, etc
ผมชอบคุณด่าผมตรงฯ (ผมโกรธเป็นแต่สักพักหนึ่งผมก็หายแล้ว (ผมพิจารณาด้วยเหตุ/ผล))
ผมกำลังตามหาอะไรอยู่? คุณรู้ไหม?
---
Date :
2017-06-14 19:49:34
By :
หน้าฮี
ไม่แน่ใจว่าพอจะช่วยได้หรือเปล่านะครับหรือว่าทำได้ไปแล้วนะ
ลองเอาปรับดูนะครับ ดักตอน เปลี่ยน Font TextBox น่าจะได้ครับ
สร้าง UserControl จากนั้นลาก TextBox มา 1 อันครับ จากนั้นโค้ดก็ตามนี้ครับ
โค้ดจะดูมักง่ายหน่อยนะครับ 555
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AutAppCenter
{
public partial class UserControl1 : UserControl
{
private int defaultTextBoxHeight;
private int defaultTextBoxWidth;
public UserControl1()
{
InitializeComponent();
defaultTextBoxHeight = 20;
defaultTextBoxWidth = 199;
}
//โค้ดส่วนนี้ได้มาจากเน็ต เลยเอามาปรับแก้ไขทำตัวอย่างให้ดูครับ
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
if ((specified & BoundsSpecified.Height) == 0 || height == defaultTextBoxHeight+50)
{
base.SetBoundsCore(x, y, defaultTextBoxWidth + 100, defaultTextBoxHeight + 20, specified);
}
else
{
return;
}
}
[Description("Test text displayed in the textbox"), Category("Data")]
public string TextBox1Text
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
[Bindable(true), Category(""), Description("")]
public Font TextBox1Font
{
get
{
return this.textBox1.Font;
}
set
{
this.textBox1.Font = value;
}
}
private void textBox1_Resize(object sender, EventArgs e)
{
defaultTextBoxHeight = textBox1.Height;
defaultTextBoxWidth = textBox1.Width;
}
}
}
Date :
2017-06-19 14:37:01
By :
บัญดิษฐ
ตอบความคิดเห็นที่ : 11 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2017-06-19 14:37:01
รายละเอียดของการตอบ ::
ได้แล้วครับ ขอบคุณมากๆ นะครับ
Code (C#)
public partial class UserControl1 : UserControl
{
private System.Windows.Forms.TextBox textBox1;
private Button button1;
private int requestedHeight;
public UserControl1()
{
InitializeComponent();
requestedHeight = textBox1.Height;
}
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBox1.Location = new System.Drawing.Point(0, 0);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(154, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Resize += new System.EventHandler(this.textBox1_Resize);
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Right;
this.button1.Location = new System.Drawing.Point(154, 0);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(29, 23);
this.button1.TabIndex = 1;
this.button1.Text = "...";
this.button1.UseVisualStyleBackColor = true;
//
// UserControl1
//
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(183, 23);
this.ResumeLayout(false);
this.PerformLayout();
}
//โค้ดส่วนนี้ได้มาจากเน็ต เลยเอามาปรับแก้ไขทำตัวอย่างให้ดูครับ
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
base.SetBoundsCore(x, y, width, textBox1.Height, specified);
}
protected override void OnFontChanged(EventArgs e)
{
//
textBox1.Font = this.Font;
}
private void textBox1_Resize(object sender, EventArgs e)
{
this.Height = textBox1.Height;
}
}
ประวัติการแก้ไข 2017-06-19 16:29:34
Date :
2017-06-19 16:28:16
By :
lamaka.tor
Date :
2017-06-20 11:35:18
By :
mr.win
ลองเอามาปรับดู ทำเล่นๆ มันก็น่าสนใจดีเหมือนกันนะ เผื่อมีใครอยากลองสร้าง user control แต่งงๆการใช้งานมัน(อย่าถามนะครับ)
ผมไม่เก่งเรื่องนี้และทุกๆเรื่องเลยละ
คือพอมีใครอธิบายส่วนนี้ผมได้ไหมครับ(ไม่ได้อำ แต่เอาจริงผมไม่รู้จริงๆครับผม)
[Description("Sets the Angle"),
Category("Appearance"),
DefaultValue(""),
Browsable(true)] ประกาศเอาไว้ทำอะไรครับ
ขอบคุณครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AutAppCenter
{
public partial class BCTextBox : UserControl
{
private const int EM_SETCUEBANNER = 0x1501;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam);
public Label BLable;
private Panel BPanel;
private TextBox BTextBox;
private int requestedHeight;
private string _Placeholder = "";
public BCTextBox()
{
InitializeComponent();
requestedHeight = BTextBox.Height;
//SendMessage(BTextBox.Handle, EM_SETCUEBANNER, 0, _Placeholder);
}
private void InitializeComponent()
{
this.BLable = new System.Windows.Forms.Label();
this.BTextBox = new System.Windows.Forms.TextBox();
this.BPanel = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// BLable
//
this.BLable.AutoSize = true;
this.BLable.Font = new System.Drawing.Font("Verdana", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.BLable.Location = new System.Drawing.Point(2, 3);
this.BLable.Name = "BLable";
this.BLable.Size = new System.Drawing.Size(37, 14);
this.BLable.TabIndex = 0;
this.BLable.Text = "label";
//
// BTextBox
//
this.BTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.BTextBox.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.BTextBox.Location = new System.Drawing.Point(5, 24);
this.BTextBox.Name = "BTextBox";
this.BTextBox.Size = new System.Drawing.Size(144, 16);
this.BTextBox.TabIndex = 1;
this.BTextBox.MouseLeave += new System.EventHandler(this.BTextBox_MouseLeave);
//
// BPanel
//
this.BPanel.BackColor = System.Drawing.Color.DarkOrange;
this.BPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
this.BPanel.Location = new System.Drawing.Point(0, 43);
this.BPanel.Name = "BPanel";
this.BPanel.Size = new System.Drawing.Size(152, 1);
this.BPanel.TabIndex = 2;
//
// BCTextBox
//
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.BPanel);
this.Controls.Add(this.BTextBox);
this.Controls.Add(this.BLable);
this.Name = "BCTextBox";
this.Size = new System.Drawing.Size(152, 44);
this.ResumeLayout(false);
this.PerformLayout();
}
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
int getHeight = BTextBox.Height + BLable.Height + 10;
base.SetBoundsCore(x, y, width, getHeight, specified);
}
protected override void OnFontChanged(EventArgs e)
{
//
BTextBox.Font = this.Font;
}
protected override void OnForeColorChanged(EventArgs e)
{
//base.OnForeColorChanged(e);
BTextBox.ForeColor = this.ForeColor;
}
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public override string Text
{
get { return BTextBox.Text; }
set {
BTextBox.Text = value;
}
}
[Description("Sets the Angle"),
Category("Appearance"),
DefaultValue(""),
Browsable(true)]
public string Placeholder
{
get { return _Placeholder; }
set
{
_Placeholder = value;
SendMessage(BTextBox.Handle, EM_SETCUEBANNER, 0, _Placeholder);
}
}
[Description("Sets the Angle"),
Category("Appearance"),
DefaultValue(""),
Browsable(true)]
public string LableText
{
get { return BLable.Text; }
set
{
BLable.Text = value;
}
}
private void BTextBox_MouseLeave(object sender, EventArgs e)
{
if (BTextBox.Text != string.Empty || BTextBox.Text != "")
{
BLable.Visible = true;
}
else
{
BLable.Visible = false;
}
}
//[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")]
//[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(UITypeEditor))]
}
}
Date :
2017-06-20 14:14:44
By :
บัญดิษฐ
ตอบความคิดเห็นที่ : 17 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2017-06-20 14:14:44
รายละเอียดของการตอบ ::
Code (C#)
[Description("Sets the Angle"),
Category("Appearance"),
DefaultValue(""),
Browsable(true)]
เป็นการตั้งค่าเพื่อให้มันโชว์ตอนหน้า desing อ่าครับ โดยหลักๆเราต้อง ใช้
Code (C#)
using System.ComponentModel;
โดยจะมีลักษณะ ประมาณนี้
Code (C#)
[,,,]
ผมก็ไม่ค่อยรู้ว่าภาษาโปรแกรมเมอร์ เขาว่าไง แต่ช่วงนี้ผมหัดทำ พวก Usercontrol เลยเจอบ่อยๆครับ
อธิบายบ้านๆตามที่ผมเข้าใจประมาณว่า
[Description("Sets the Angle") เป็นการอธิบาย property นั้นๆ
Category("Appearance") จัดกลุ่มให้กับ property ในที่นี้คือ Appearance
DefaultValue(""), ค่า Default ของ property
Browsable(true) ต้องการแสดงหรือไม่
]
ผมเจอ Control บางตัวมีแบบใช้ บอกกล่าวเกี่ยวกับ Control ของตนด้วย
Code (C#)
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
DefaultEvent("SelectedIndexChanged"),
DefaultProperty("Items"),
DefaultBindingProperty("Text"),
Designer("System.Windows.Forms.Design.ComboBoxDesigner, " + AssemblyRef.SystemDesign),
SRDescription(SR.DescriptionComboBox)
]
public class ComboBox : ListControl
{
//......................
}
Date :
2017-06-20 16:43:05
By :
lamaka.tor
@lamaka.tor
ขอบคุณ/ขอบใจ ที่ทำให้ผมมีความสุข
--- ผมดีใจที่คุณเป็นแบบนี้ +55555
ทุกฯย่างก้าว มันมีโอกาสเสมอ
Date :
2017-06-21 22:01:59
By :
หน้าฮี
Load balance : Server 00