 |
|
รบกวนกูรูช่วยด้วยครับเลือก Combobox 1 และ combobox2 แล้วให้ คนวณเลข จาก ที่พิม ลงไป อะครับบบ จนปัญญา |
|
 |
|
|
 |
 |
|
ประกาศตัวแปร num ไว้บน class เรียกได้ทันที
|
 |
 |
 |
 |
Date :
2013-05-02 08:17:08 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไงอะครับ ไม่เข้าใจ
|
 |
 |
 |
 |
Date :
2013-05-02 23:31:41 |
By :
Bigkikeo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ช่วยหน่ิยยยยครับบบ
|
 |
 |
 |
 |
Date :
2013-05-03 22:31:11 |
By :
bigkikeo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่ถนัด VB นะครับ แต่เท่าที่ดูไม่แน่ใจว่าถูกหรือเปล่านะครับ
คิดว่าน่าจะแก้ประมาณนี้นะครับ
Code (C#)
double num = Double.Parse(txtdisin.Text);
double sum = 0;
If (inDis.SelectedIndex = 1 && outDis.SelectedIndex = 1)
{
sum = num;
}
else if(inDis.SelectedIndex = 1 && outDis.SelectedIndex = 2)
{
sum = num * 0.39;
}
txtdisout.Text = sum.ToString();
ลองดูนะครับ
|
 |
 |
 |
 |
Date :
2013-05-07 18:22:56 |
By :
batiboy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
#NO 1ประกาศตัวแปร num ไว้บน class เรียกได้ทันที
เรียกได้ทันที มันคืออะไรครับ?
|
 |
 |
 |
 |
Date :
2013-05-08 06:55:10 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีตัวอย่างที่ดีมากมายบน Internet เกี่ยวกับการแปลงหน่วยนับ (Unit Converter) อทิเช่น
http://www.unitconverters.net/
ในกรณีนี้ผมหมายถึง ระยะทาง เท่านั้น
---- หน่วยนับย่อยที่สุดคือ เซนติเมตร (Centimeter)
---- หน่วยนับใหญ่ที่สุดคือ กิโลเมตร (km)
---- ใช้ ComboxBox.SelectedIndex เป็นตัวช่วยแปลงสลับไปมาได้ เช่น cm --> m หรือ m --> cm เป็นต้น
-------- cm = เซตติเมตร, m = เมตร
#NO6 กับการประยุกต์ใช้งานครับ
---- สร้าง Class สำหรับการแปลงหน่วยนับ's
Code (VB.NET)
Imports System
Imports System.Linq
Public Class UnitConverter
Private dicFormula As New Dictionary(Of String, List(Of Formula))
Sub New()
dicFormula.Add("mm2cm", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2cm", .Ratio = 10, .Remark = "มิลลิเมตร 2 เซนติเมตร"}
})
dicFormula.Add("mm2m", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2m", .Ratio = 1000, .Remark = "มิลลิเมตร 2 เมตร"}
})
dicFormula.Add("mm2km", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2km", .Ratio = 1000000, .Remark = "มิลลิเมตร 2 กิโลเมตร"}
})
dicFormula.Add("cm2m", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2cm", .Ratio = 100, .Remark = "มิลลิเมตร 2 เซนติเมตร"}
})
dicFormula.Add("cm2km", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2m", .Ratio = 100000, .Remark = "มิลลิเมตร 2 เมตร"}
})
dicFormula.Add("m2km", New List(Of Formula) From {
New Formula() With {.SourceDesc = "mm2km", .Ratio = 1000, .Remark = "มิลลิเมตร 2 กิโลเมตร"}
})
End Sub
Public Function Calculate(ByVal n As Double, ByVal key As String) As Double
Dim iRet As Double = 0.0
Try
If dicFormula.ContainsKey(key) Then
iRet = n / dicFormula.Item(key)(0).Ratio 'dicFormula.TryGetValue(key, b)
End If
Catch ex As Exception
'1/0 --> Infinity (Programmer Error)
End Try
Return iRet
End Function
Private Class Formula
Sub New()
End Sub
Public Property SourceDesc As String
Public Property Ratio As Double = 1.0
Public Property Remark As String
End Class
End Class
|
 |
 |
 |
 |
Date :
2013-05-08 15:37:05 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตัีวอย่างการเรียกใช้งาน
---- สร้างฟอร์ม frmUnitConverter
Code (VB.NET)
Public Class frmUnitConverter
Private Sub frmUnitConverter_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Call FillMeasurement()
End Sub
'Fill ComboBox
Private Sub FillMeasurement()
cboFrom.Items.Add(New ListItem("มิลลิเมตร", "mm"))
cboFrom.Items.Add(New ListItem("เซนติเมตร", "cm"))
cboFrom.Items.Add(New ListItem("เมตร", "m"))
cboFrom.Items.Add(New ListItem("กิโลเมตร", "km"))
cboFrom.SelectedIndex = 0
'
cboTo.Items.Add(New ListItem("มิลลิเมตร", "mm"))
cboTo.Items.Add(New ListItem("เซนติเมตร", "cm"))
cboTo.Items.Add(New ListItem("เมตร", "m"))
cboTo.Items.Add(New ListItem("กิโลเมตร", "km"))
cboTo.SelectedIndex = 1
End Sub
'คำนวณ
Private Sub btnCalculate_Click(sender As System.Object, e As System.EventArgs) Handles btnCalculate.Click
Dim c As New UnitConverter()
Dim x = cboFrom.Items(cboFrom.SelectedIndex).Text.ToString()
Dim y = cboFrom.Items(cboFrom.SelectedIndex).Value.ToString()
Dim key As String = cboFrom.Items(cboFrom.SelectedIndex).Value.ToString() & "2" & cboTo.Items(cboTo.SelectedIndex).Value.ToString()
If cboFrom.SelectedIndex < cboTo.SelectedIndex Then
'หน่วยย่อย --> หน่วยที่ใหญ่กว่า (หาร)
txtTo.Text = c.Calculate(Convert.ToDouble(txtFrom.Text), key)
End If
End Sub
'มันควรจะอยู่ที่นี่หรือไม่?
Private Class ListItem
Public Property Text As String
Public Property Value As String
Public Sub New(ByVal txt As String, ByVal ID As String)
Text = txt
Value = ID
End Sub
Public Overrides Function ToString() As String
Return Text.ToString()
End Function
End Class
End Class
ขอให้โชคดีครับ
ปล. จากตัวอย่างนี้ มันตอบโจทย์ได้ทุกข้อสงสัย แต่ผมไม่ได้อธิบาย (เกินความจำเป็น)
|
 |
 |
 |
 |
Date :
2013-05-08 16:15:47 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
#NO8 *****
บันทัดที่ 25 ไม่ได้ใช้งาน Dim x = cboFrom.Items(cboFrom.SelectedIndex).Text.ToString()
บันทัดที่ 26 ไม่ได้ใช้งาน Dim y = cboTo.Items(cboTo.SelectedIndex).Value.ToString()
|
 |
 |
 |
 |
Date :
2013-05-08 16:20:40 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|