我怎么能只编写一次代码并复制c#
我不熟悉C#和课程。我正在测试制作一个datagridview,用户可以在其中右键单击并弹出一个contextmenustrip。现在我的问题如下 我的代码将文本添加到文本框中,如果文本框不是空的,则增加文本框 有没有一种方法可以让这个代码只运行一次,并在每次需要时调用它。所以我只需要更改文本框。文本?否则,我需要复制和粘贴这个代码超过10次 我尝试的我怎么能只编写一次代码并复制c#,c#,class,C#,Class,我不熟悉C#和课程。我正在测试制作一个datagridview,用户可以在其中右键单击并弹出一个contextmenustrip。现在我的问题如下 我的代码将文本添加到文本框中,如果文本框不是空的,则增加文本框 有没有一种方法可以让这个代码只运行一次,并在每次需要时调用它。所以我只需要更改文本框。文本?否则,我需要复制和粘贴这个代码超过10次 我尝试的 private void TsmItem_Click(object sender, EventArgs e) {
private void TsmItem_Click(object sender, EventArgs e)
{
Textbox.Text = RightMouseClick(Textbox.Text);
}
private void RightMouseClick(string txtResult)
{
int rowindex = dgvResults.CurrentCell.RowIndex;
int columnindex = dgvResults.CurrentCell.ColumnIndex;
if (string.IsNullOrEmpty(txtResult))
{
txtResult = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
}
else
{
string selectedCell;
double resultText;
selectedCell = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
resultaat = Convert.ToDouble(txtResult) + Convert.ToDouble(selectedCell);
txtResult = Convert.ToString(resultText);
}
}
修复
private string RightMouseClick(TextBox txtResult)
{
int rowindex = dgvResults.CurrentCell.RowIndex;
int columnindex = dgvResults.CurrentCell.ColumnIndex;
if (string.IsNullOrEmpty(txtResult.Text))
{
return txtResult.Text = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
}
else
{
string selectedCell;
double resultaat;
selectedCell = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
resultaat = Convert.ToDouble(txtResult.Text) + Convert.ToDouble(selectedCell);
return txtResult.Text = Convert.ToString(resultaat);
}
}
您可以将文本框用作参数
private void RightMouseClick(TextBox txtBox)
{
int rowindex = dgvResults.CurrentCell.RowIndex;
int columnindex = dgvResults.CurrentCell.ColumnIndex;
if (string.IsNullOrEmpty(txtResult))
{
txtBox.Text = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
}
else
{
string selectedCell;
double resultText;
selectedCell = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
resultaat = Convert.ToDouble(txtBox.Text) + Convert.ToDouble(selectedCell);
txtBox.Text = Convert.ToString(resultText);
}
}
您应该确保您还进行了检查,以确保文本框不为空如果您想要创建可重用的方法,那么您只能使用公共代码并通过参数添加特定的部分。你的方法中有哪些具体部分?您正在传递
Text
,传递一个完整的TextBox
控件如何?您可以将所有文本框的单击映射到同一事件处理程序。在设计器中,应添加this.textBox1.Click+=new System.EventHandler(this.RightClick);this.textBox2.Click+=newsystem.EventHandler(this.RightClick);等等然后,事件处理程序的发送方将是文本框,EventArgs将包含鼠标参数感谢您的回复。我修改了一些部分,这样它就可以工作了,现在我可以在每次右键单击操作中调用它。
private void RightMouseClick(TextBox txtBox)
{
int rowindex = dgvResults.CurrentCell.RowIndex;
int columnindex = dgvResults.CurrentCell.ColumnIndex;
if (string.IsNullOrEmpty(txtResult))
{
txtBox.Text = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
}
else
{
string selectedCell;
double resultText;
selectedCell = dgvResults.Rows[rowindex].Cells[columnindex].Value.ToString();
resultaat = Convert.ToDouble(txtBox.Text) + Convert.ToDouble(selectedCell);
txtBox.Text = Convert.ToString(resultText);
}
}