|
|
|
ตรวจสอบโค้ดให้ที่คับ ในส่วนของวาดภาพ ว่าทำไมรูปที่ได้ถึงไม่มีการวนลูปวาดออกมา |
|
|
|
|
|
|
|
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data; // 2 ตัวที่จะขาดไม่ได้ในการใช้งานฐานข้อมูล
using System.Data.OleDb; //
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Bison_v0._2
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
}
private DataSet _DataSet; //ประกาศตัวแปร Dataset เป็นแบบ fill
private void btnSearch_Click(object sender, EventArgs e)
{
string BusNum = txtNum.Text;
string Start = txtStart.Text;
string Terminal = txtTerminal.Text;
if ((BusNum == "") && (Start == "") && (Terminal == ""))
MessageBox.Show("กรุณากรอกรายละเอียดการค้นหา", "No Detail");
/*- - - - - - - - - - - - - - - - - -เชื่อมต่อฐานข้อมูล- - - - - - - - - - - - - - - - - */
string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" +
@"Data Source=C:\Users\Plugfai\Documents\Visual Studio 2008\Projects\Bus_Aplication\Data\Bus Transport of Bangkok.accdb";
OleDbConnection conn = new OleDbConnection(conStr);
conn.Open();
_DataSet = new DataSet();
OleDbCommand cmd;
OleDbDataAdapter adapter;
string sql;
sql = "SELECT * FROM Bus_Lines WHERE Bus_Number=" + "'" + BusNum + "'"; //ค้นหาข้อมูลจากหมายเลขที่ป้อน
cmd = new OleDbCommand(sql, conn);
adapter = new OleDbDataAdapter(cmd);
adapter.Fill(_DataSet, "BusData");
int Check = _DataSet.Tables["BusDAta"].Rows.Count;
if (Check == 0)
MessageBox.Show("ไม่พบข้อมูล");
else
Show_DataBindings();
UpdateStatus();
conn.Close();
}
private void Show_DataBindings() //เคลียร์ค่า และ ผูกข้อมูลเข้ากับ Textbox
{
txtName.DataBindings.Clear();
rtbGo.DataBindings.Clear();
rtbBack.DataBindings.Clear();
txtName.DataBindings.Add("Text", _DataSet, "BusData.Bus_Name");
rtbGo.DataBindings.Add("Text", _DataSet, "BusData.Ramble");
rtbBack.DataBindings.Add("Text", _DataSet, "BusData.Way_Back");
}
private void UpdateStatus() //อัพเดตข้อมูล ว่าปัจจุบันอยู่หน้าที่เท่าไหร่
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position + 1;
string Status = Pos.ToString() + " of " + _DataSet.Tables["BusData"].Rows.Count;
lblStatus.Text = Status;
}
private void btnBack_Click(object sender, EventArgs e) //ปุ่มย้อนกลับ
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position;
if (Pos == 0)
{
return;
}
else
{
this.BindingContext[_DataSet, "BusData"].Position -= 1;
}
UpdateStatus();
}
private void btnNext_Click(object sender, EventArgs e) //ปุ่มไปยังหน้าถัดไป
{
int Pos = this.BindingContext[_DataSet, "BusData"].Position;
int numRows = _DataSet.Tables["BusData"].Rows.Count;
if (Pos == (numRows - 1))
{
return;
}
else
{
this.BindingContext[_DataSet, "BusData"].Position += 1;
}
UpdateStatus();
}
private void pnMap_Paint(object sender, PaintEventArgs e)
{
string WordCheck = "-";
int start = 0;
int foundPos = -1;
int count = 0;
while (true)
{
foundPos = rtbGo.Find(WordCheck, start, RichTextBoxFinds.MatchCase);
if (foundPos != -1)
{
count++;
}
else
{
//MessageBox.Show("มีทั้งหมด" + (count+1) + "สถานที่");
for (int i = 1; i <= (count + 1); i++)
{
Graphics g = e.Graphics;
Pen myPen = new Pen(Color.Red, 3);
Point p1 = new Point(5 + (50 * i), 150);
Point p2 = new Point(100, 150);
g.DrawLine(myPen, p1, p2);
SolidBrush Point_1Pen = new SolidBrush(Color.Red);
g.FillEllipse(Point_1Pen, 5 + (50 * i), 145, 10, 10);
g.Dispose();
}
break;
}
start = (foundPos + WordCheck.Length);
}
}
}
}
ตรวจสอบโค้ดให้ที่คับ ในส่วนของวาดภาพ ว่าทำไมรูปที่ได้ถึงไม่มีการวนลูปวาดออกมา
คือต้องการให้มันวาดลูปเมื่อมีความแสดงใน RichTextBox แล้วอ่ะครับ
โดยวิธีการวาดจะเห็นการนับเครื่องหมายลบ
และวาดรูป จุดออกมาเท่ากับ (จำนวนเครื่องหมายลบ + 1)
และวาดเส้นออกมาให้มีความยาวเท่ากับ ตำแหน่งของจุดแรก
จนถึงจุดปลาย !!
Tag : .NET, Ms Access, C#, VS 2008 (.NET 3.x)
|
|
|
|
|
|
Date :
2011-03-29 21:00:27 |
By :
plugantz |
View :
1050 |
Reply :
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|