PLSQLの基本構造のコードを自動化するコードを書いています。 ので、私は、以下のように、実施例のパラメータを保持しているリスト、そこでパラメータを適切に上記のように整列されなければならないコンソール出力とリストボックスに空白が表示されない
pv_student_name IN VARCHAR2
pn_number OUT NUMBER
を有するので、私は普通の入力を受け取り、整列c#
の手順(方法)を書かれていますパラメータを適切に整列したリストを返します。
しかし、私が使用してコンソールに印刷する場合System.Console.WriteLine
その後、パラメータが適切に整列している。しかし、私はList Box
でパラメータを参照するときにスペースが追加されているもののパラメータは、適切に整列されていません。
以下はアライメントコードです。以下は
//Alignment of parameters logic
private List<string> alignParameters(List<string> nonAligned_parameters){
List<string> alignedParamtersList = new List<string>();
List<string> parameterList = new List<string>();
List<string> inOutList = new List<string>();
List<string> dataTypeList = new List<string>();
foreach (string parameter in nonAligned_parameters)
{
string[] param = parameter.Split(' ');
int count = 1;
foreach (string word in param)
{
if (count == 1)
{
parameterList.Add(word.Trim());
}
else if (count == 2)
{
inOutList.Add(word.Trim());
}
else if (count == 3) {
dataTypeList.Add(word.Trim());
}
count++;
}
}
// find the longest string in the list
int maxLength = parameterList.Max(x => x.Length);
//aligning the parameters
int numberOfElements= parameterList.Count();
for (int i = 0; i < numberOfElements; i++)
{
string param = parameterList[i].ToString().Trim();
string inOut = inOutList[i].ToString().Trim();
string dataType = dataTypeList[i].ToString().Trim();
int requiredSpace = maxLength - param.Length + 1;
string spaces = new string(' ', requiredSpace);
string spc = "";
if ("OUT".Equals(inOut)) {
spc = " ";
}
else if ("IN".Equals(inOut)) {
spc = " ";
}
string alignedParameter = param +
spaces +
inOut +
spc +
dataType;
// adding aligned parameters in aligned parameter list to be returned
alignedParamtersList.Add(alignedParameter);
}
return alignedParamtersList;
}
我々は新しいパラメータを追加するときにパラメータはので、問題があってもということで、追加整列して、ListBox
private void button_AddParameter_Click(object sender, EventArgs e)
{
string error = "N";
//validation code here
if ("N".Equals(error)) {
parameterName = label_paramPrefix.Text +
textBox_parameterName.Text +" "+
combo_InOut.SelectedItem.ToString()+" "+
combo_DataType.SelectedItem.ToString();
}
parameterList.Add(parameterName);
// Align the parameters
parameterListAligned = alignParameters(parameterList);
// populating parameter list in GUI with fresh aligned parameters
listBox_parameter.Items.Clear();
foreach (string parameters in parameterListAligned)
{
listBox_parameter.Items.Add(parameters);
System.Console.WriteLine("param" + parameters);
}
}
に戻って移入され、それが呼び出されたプロシージャですコンソールは、パラメータが正しく整列されて出力されますが、ListBox
は正しく整列しません。
皆さん、私にこれを手伝ってもらえますか?ListBox
で整列して表示されるようにこれらのパラメータが必要です。
ListBox
に整列されていないパラメータが表示されているアプリケーションのスクリーンショットが添付されています。コンソール出力のスクリーンショットもその下に添付されています。
あなたのアプリは可変幅フォントを使用しているため、各文字の幅は同じではありません。 (W対Iのように)フォントを固定フォントに変更するか、列を使用してリストビューを使用して出力の各部分を表示する必要があります – Steve
@Steveありがとうございます。しかし、私はJavaに取り組んでいます。私はjavaで作成した.netで同じアプリケーションを作るように頼んだので)ListBoxに表示されているフォントを変更する方法を教えてもらえますか(また、RichTextBoxで変更する必要があります)そこにも表示されます。また、私はLisViewを使用する方法を知らせることができます(これは私があなたが意味するものすべてを理解していない)、申し訳ありません私は求めている質問の愚かな種類の。 :-) – prnjn
ここでは分かりません。デスクトップアプリケーション(WinFormsまたはWPF?)のインターフェイスを表示しましたが、ASP.NETタグで質問をマークしました。どのような種類のアプリケーションがここで話しているのかを明確にすることはできますか? – Steve