我想將一個值(從一個對象)放在一個變量中,並將其放置在一個表單中的文本框中。C#:你如何在Form.cs中引用Program.cs中的內容?
這裏是形式的代碼:
public Form1(Deck mainDeck)
{
InitializeComponent();
int Val = mainDeck.ReturnCard(10);
textBox1.Text = Val.ToString();
}
主甲板是在我的Program.cs對象文件
問題線是這一個:INT纈氨酸= mainDeck.ReturnCard(10);
糟糕,錯誤的錯誤。 這纔是真正的一個:
Error 1 The name 'mainDeck' does not exist in the current context C:\Users\Chris\Documents\Visual Studio 2008\Projects\Pcard\Pcard\Form1.cs 17 23 Pcard
這裏是我的Program.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Pcard
{
class Deck
{
public Deck()
{
// Assign standard deck to new deck object
// int j;
for (int i = 0; i != currentDeck.Length; i++)
{
currentDeck[i] = originalCards[i];
}
// Fisher-Yates Shuffling Algorithim --- Do initial shuffle
Random rnd = new Random();
for (int k = currentDeck.Length - 1; k >= 0; k--)
{
int r = rnd.Next(0, k + 1);
int tmp = currentDeck[k];
currentDeck[k] = currentDeck[r];
currentDeck[r] = tmp;
}
}
public void Shuffle()
{
Random rnd = new Random();
for (int k = currentDeck.Length - 1; k >= 0; k--)
{
int r = rnd.Next(0, k + 1);
int tmp = currentDeck[k];
currentDeck[k] = currentDeck[r];
currentDeck[r] = tmp;
}
}
public int[] ReturnDeck()
{
return currentDeck;
}
public int ReturnCard(int num)
{
return currentDeck[num];
}
public int[] originalCards = new int[54]
{
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D,
0x50, 0x51
};
private int[] currentDeck = new int[54];
}
public class Program
{
static void Main(string[] args)
{
// Create a Deck object
Deck mainDeck = new Deck();
Console.WriteLine("Here is the card array:");
for (int index = 0; index != 54; index++)
{
string card = mainDeck.ReturnCard(index).ToString("x");
Console.WriteLine("0x" + card);
}
//Return 10th Card
int PickCard = mainDeck.ReturnCard(10);
Console.WriteLine("Here is the 10th Card");
Console.WriteLine("0x" + PickCard);
//Shuffle
mainDeck.Shuffle();
Console.WriteLine("Shuffling..");
PickCard = mainDeck.ReturnCard(10);
Console.WriteLine("Here is the 10th card now: 0x" + PickCard);
Application.Run(new Form1(maindeck));
}
}
}
編輯:好吧,我傳遞主甲板到形式,但現在我得到不同的錯誤: Error 1 Inconsistent accessibility: parameter type 'Pcard.Deck' is less accessible than method 'Pcard.Form1.Form1(Pcard.Deck)' C:\Users\Chris\Documents\Visual Studio 2008\Projects\Pcard\Pcard\Form1.cs 14 16 Pcard
編輯:編輯:好吧,我現在有第正在工作,但我遇到了一個相關的問題,所以我寧願把它放在這裏,而不是在一個新的問題。
將mainDeck傳遞給Form1可以正常工作,但如果我想讓按鈕單擊,則會調用此對象中的某個方法。我試圖通過主甲板是這樣的:
private void button1_Click(object sender, Deck mainDeck, EventArgs e)
{
mainDeck.Shuffle();
}
我得到這個錯誤:
Error 1 No overload for 'button1_Click' matches delegate 'System.EventHandler' C:\Users\Chris\Documents\Visual Studio 2008\Projects\Pcard\Pcard\Form1.Designer.cs 51 35 Pcard
GRR!
這條線和什麼是完整的信息。 – rerun 2010-03-10 05:26:57
int Val = mainDeck.ReturnCard(10) – Biosci3c 2010-03-10 05:27:46
是否在您的項目中定義了主甲板 – rerun 2010-03-10 05:32:25