|
|
|
สอบถามหน่อยครับ การค้นหา Control บน Winapp มีวิธีการทำหรือป่าวครับ |
|
|
|
|
|
|
|
ค้นหาในหน้า Code หรือว่าหน้า UI ครับ
|
|
|
|
|
Date :
2013-08-21 10:36:10 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า UI เลยครับ พอโปรแกรมรับชึ้นมาครัล
|
|
|
|
|
Date :
2013-08-21 10:43:51 |
By :
Thebig |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า UI เลยครับ พอโปรแกรมมันรันขึ้นมา
ก็ให้มันสามารถ ค้นหา Contro ได้
|
|
|
|
|
Date :
2013-08-21 10:44:46 |
By :
Thebig |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะให้คนใช้โปรแกมเรา ค้นหาใช่ไหมคัรบ หรือ คุณจะค้นหาเอง
|
|
|
|
|
Date :
2013-08-21 10:47:29 |
By :
CPU4Core |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผู้ใช้หาเองครับ
คือเวลารันโปรแกรม มันมี Button 500 อัน
ที่นี้ ก็ผู้ใช้หาอันที่ 329 โดยการกรอกจาก Textbox หรืออะไรก็แล้วแต่
|
|
|
|
|
Date :
2013-08-21 10:51:08 |
By :
Thebig |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากทำให้ ณ ตอนนี้เลย แต่ทำงานอยู่ รอไปก่อนนะจ้ะ
|
|
|
|
|
Date :
2013-08-21 11:57:08 |
By :
01000010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมยังรออยุ่นะครับ
|
|
|
|
|
Date :
2013-08-21 19:33:54 |
By :
ghack |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
private void Form1_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.AutoScroll = true;
string valSearch = string.Empty;
DialogResult valResult;
Button vButton;
vButton = new Button() { Location = new Point(150, 10), Size = new Size(1000, 40), Text = "ค้นหาปุ่ม" };
vButton.Click += delegate(System.Object ob, System.EventArgs ev) {
foreach (Button b in this.Controls)
{
b.BackColor = DefaultBackColor;
}
valResult = InputBox("ค้นหาปุ่ม", "กรุณากรอกตัวเลขที่ต้องการจะค้นหา", ref valSearch);
if (valResult == System.Windows.Forms.DialogResult.OK)
{
var bResult = (from b in this.Controls.Cast<Button>()
where b.Text == valSearch
select b);
foreach (Button b in bResult)
{
b.BackColor = Color.Red;
}
}
};
this.Controls.Add(vButton);
int valCount = 1;
for (byte y = 1; y <= 9; y++)
{
for (byte x = 1; x <= 16; x++)
{
vButton = new Button() { Location = new Point(70 * x, 70 * y) , Size = new Size(50,50) , Text = valCount.ToString()};
this.Controls.Add(vButton);
valCount++;
}
}
}
public static DialogResult InputBox(string title, string promptText, ref string value)
{
Form form = new Form();
Label label = new Label();
TextBox textBox = new TextBox();
Button buttonOk = new Button();
Button buttonCancel = new Button();
form.Text = title;
label.Text = promptText;
textBox.Text = value;
buttonOk.Text = "OK";
buttonCancel.Text = "Cancel";
buttonOk.DialogResult = DialogResult.OK;
buttonCancel.DialogResult = DialogResult.Cancel;
label.SetBounds(9, 20, 372, 13);
textBox.SetBounds(12, 36, 372, 20);
buttonOk.SetBounds(228, 72, 75, 23);
buttonCancel.SetBounds(309, 72, 75, 23);
label.AutoSize = true;
textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
form.ClientSize = new Size(396, 107);
form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = false;
form.MaximizeBox = false;
form.AcceptButton = buttonOk;
form.CancelButton = buttonCancel;
DialogResult dialogResult = form.ShowDialog();
value = textBox.Text;
return dialogResult;
}
ตอบความคิดเห็น
สร้างโปรเจ็กใหม่ขึ้นมานะครับ แล้วหน้าจอยังไม่ต้องทำอะไร
ให้คุณนำโค้ดข้างบนนี้ไปวางต่อจาก บรรทัด
Code (C#)
public Form1()
{
InitializeComponent();
}
ที่เหลือก็นำไปประยุกต์ดูนะครับ ขอให้โชคดีกับการศึกษาครับ
หมายเหตุ : เพิ่มโค้ดด้านล่างนี้ลงใน Constructor Form1 ด้วยนะครับ
Code (C#)
this.Load +=new EventHandler(Form1_Load);
รวมเป็น
Code (C#)
public Form1()
{
InitializeComponent();
this.Load +=new EventHandler(Form1_Load);
}
|
ประวัติการแก้ไข 2013-08-21 23:23:34 2013-08-22 08:39:34
|
|
|
|
Date :
2013-08-21 23:22:41 |
By :
01000010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
var bResult = (from b in this.Controls.Cast<Button>()
where b.Text == valSearch
select b);
foreach (Button b in bResult)
error ตรงนี้ครับ ผมรบกวนดูให้หน่อยครับ
|
|
|
|
|
Date :
2013-08-21 23:57:31 |
By :
G |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแปลงเป็น vb.net มัน error บรรทัดนี้ครับ
Code (VB.NET)
Dim bResult = (From b In Me.Controls.Cast(Of Button)() Where b.TAG = valSearchb)
|
|
|
|
|
Date :
2013-08-22 10:35:13 |
By :
Ghack |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแก้ได้แล้วนะครับ เดียวผมติดอะไรผมจะรบกวนคุณ 0100 0010 อีกสักหน่อยนะครับ
ต้องขอบใจมากครับ
|
|
|
|
|
Date :
2013-08-22 11:29:55 |
By :
Ghack |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมรบกวนนิดนึงครับ
เมื่อกี่ลองเขียนๆมั่วๆเอาจนได้
Code (VB.NET)
Dim C() As Control
C = Me.Controls.Find(TextBox1.Text, False)
For i As Integer = 0 To C.Length - 1
C(i).Focus()
C(i).BackColor = Color.Black
Next
แต่ปัญหาคือ มันจะหาจาก .name อย่างเดียวเลยอะครับ ซึ่ง ผมต้องการให้หาจาก .tag ผมรบกวนหน่อยนะครับ
|
|
|
|
|
Date :
2013-08-22 13:21:58 |
By :
Ghack |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยหน่อยครับ ตอนนี้ยังไม่ได้เลย ลองทำหลายทางแล้วครับ
ให้มันหา จาก .text หนะครับ
|
|
|
|
|
Date :
2013-08-28 14:23:33 |
By :
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
polymorphism การมองอ๊อบเจ็กหลายมุมมอง ไม่สามารถมองคลาส Control ให้มีคุณสมบัติ Text ได้อยู่แล้วครับ
ต้องแปลงก่อน
|
|
|
|
|
Date :
2013-08-28 15:22:27 |
By :
01000010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ละครับ
|
|
|
|
|
Date :
2013-08-28 16:14:55 |
By :
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|