>

내 코드에서는 0-9/a-z 이외의 문자를 텍스트 상자에 입력 할 수 없습니다. 이를 위해 사용 된 코드는 다음과 같습니다.

   public bool IsValidFilename(string exportName)
    {
        var regex = new Regex(@"[^a-zA-Z0-9\s]");
        if (regex.IsMatch(exportName)) 
        {
            MessageBox.Show("Enter only valid characters! (Aa-Zz, 0-9)", MessageBoxButtons.OK, MessageBoxIcon.Information);
        };
        return true;
    }

Button Click 이벤트에서이 메소드를 호출했으며 메시지 상자가 예상대로 표시됩니다. 그러나이 작업은 위의 코드 결과에 관계없이 열리는 folderBrowserDialog 메서드입니다.

 public void btExport_Click(object sender, EventArgs e)
    {
        IsValidFilename(textBox1.Text);
        var dialogResult = folderBrowserDialog.ShowDialog();
    }

응용 프로그램이 folderBrowserDialog를 열 수 없도록하려면 어떻게합니까?

PS : 부모 응용 프로그램을 실행하고 싶습니다. Application.Exit () 또는 this.Close ()를 사용하고 싶지 않습니다.


  • 답변 # 1

    당신의 메소드는 이미 bool을 반환합니다. 이것은 당신이 이것을 할 수 있다는 것을 의미합니다 :

    public void btExport_Click( object sender, EventArgs e )
    {
        if( IsValidFilename( textBox1.Text ) )
        {
            var dialogResult = folderBrowserDialog.ShowDialog();
        }
    }
    
    

    그러나 메소드가 실패하면 false를 반환해야합니다.

    public bool IsValidFilename(string exportName)
    {
        var regex = new Regex(@"[^a-zA-Z0-9\s]");
        if (regex.IsMatch(exportName)) 
        {
            MessageBox.Show("Enter only valid characters! (Aa-Zz, 0-9)", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //If this is the location of the error, put return false here.
            return false;
        };
        return true;
    }
    
    

    1 빠른 메모,하지 말아야

    if (regex.IsMatch(exportName))
    
    

    한다

    if (!regex.IsMatch(exportName)) //!
    
    

관련 자료

  • 이전 c# - 자식 메뉴가있는 Xamarin Forms 탭 페이지
  • 다음 liferay - 데이터베이스 드라이버 (commysqljdbcDriver)가 없습니다 응용 프로그램 서버에 설치하십시오